📜  “https:restful-booker.herokuapp.com 预订 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:21:24.925000             🧑  作者: Mango

"https://restful-booker.herokuapp.com" 预订 - Shell-Bash

介绍

本文介绍如何使用 Shell-Bash 在 "https://restful-booker.herokuapp.com" 上进行预订。

RESTful Booker 是一个用于在线预订的演示Web服务,它使用了RESTful的风格。可以使用以下几种方法来与RESTful Booker进行交互:

  • GET: 获取资源
  • POST: 创建资源
  • PUT: 更新资源
  • DELETE: 删除资源

在本文中,我们将使用 bash 和 curl 命令来发送 HTTP 请求并获取响应。同时,我们还将使用 jq 命令来处理响应数据。

先决条件

在运行本教程之前,您需要在本地安装 bash 和 curl 命令以及 jq 命令。这些工具通常在 Linux 和 Mac 操作系统上预装,Windows 操作系统可以使用 Git Bash 工具来运行本教程。

获取访问令牌

要进行预订操作,您需要先获取访问令牌。访问令牌是通过身份验证获得的,身份验证可以使用以下 URL 进行:

curl --header "Content-Type: application/json" \
  --request POST \
  --data '{"username":"admin","password":"password123"}' \
  https://restful-booker.herokuapp.com/auth

该请求将在响应中返回一个令牌,如下所示:

{
    "token": "d7591aa7712c61f"
}

您需要将响应中的令牌保存在变量中,以便之后的请求可以使用。

预订房间

要预订房间,您需要发送一个 POST 请求到以下 URL,其中 auth_token 是您在上一步中获取的访问令牌:

curl --header "Content-Type: application/json" \
  --header "Accept: application/json" \
  --header "Authorization: Bearer <auth_token>" \
  --request POST \
  --data '{"firstname":"John","lastname":"Doe","totalprice":111,"depositpaid":true,"bookingdates":{"checkin":"2018-01-01","checkout":"2018-01-07"},"additionalneeds":"Breakfast"}' \
  https://restful-booker.herokuapp.com/booking

该请求将在响应中返回一个 JSON 对象,如下所示:

{
    "bookingid": 1,
    "booking": {
        "firstname": "John",
        "lastname": "Doe",
        "totalprice": 111,
        "depositpaid": true,
        "bookingdates": {
            "checkin": "2018-01-01",
            "checkout": "2018-01-07"
        },
        "additionalneeds": "Breakfast"
    }
}

您可以使用 jq 命令来提取和处理响应中的数据。例如,要提取预订 ID,您可以使用以下命令:

booking_id=$(curl --silent --header "Content-Type: application/json" \
  --header "Accept: application/json" \
  --header "Authorization: Bearer $auth_token" \
  --request POST \
  --data '{"firstname":"John","lastname":"Doe","totalprice":111,"depositpaid":true,"bookingdates":{"checkin":"2018-01-01","checkout":"2018-01-07"},"additionalneeds":"Breakfast"}' \
  https://restful-booker.herokuapp.com/booking | jq -r '.bookingid')
获取预订详情

要获取预订的详细信息,您需要发送一个 GET 请求到以下 URL,其中 booking_id 是上一步中的预订 ID,auth_token 是您在上一步中获取的访问令牌:

curl --header "Content-Type: application/json" \
  --header "Accept: application/json" \
  --header "Authorization: Bearer $auth_token" \
  --request GET \
  https://restful-booker.herokuapp.com/booking/$booking_id

该请求将在响应中返回一个 JSON 对象,其中包含指定预订 ID 的详细信息。

取消预订

要取消预订,您需要发送一个 DELETE 请求到以下 URL,其中 booking_id 是上一步中的预订 ID,auth_token 是您在上一步中获取的访问令牌:

curl --header "Content-Type: application/json" \
  --header "Accept: application/json" \
  --header "Authorization: Bearer $auth_token" \
  --request DELETE \
  https://restful-booker.herokuapp.com/booking/$booking_id

该请求将删除指定预订 ID 的预订信息。

总结

本文介绍了如何在Shell-Bash中使用 curl 和 jq 命令,来进行在 "https://restful-booker.herokuapp.com" 上进行预订。操作包括获取访问令牌、预订房间、获取预订详情和取消预订。您可以使用这些命令来与其他提供 RESTful API 的Web服务进行交互。