📅  最后修改于: 2023-12-03 15:21:24.925000             🧑  作者: Mango
本文介绍如何使用 Shell-Bash 在 "https://restful-booker.herokuapp.com" 上进行预订。
RESTful Booker 是一个用于在线预订的演示Web服务,它使用了RESTful的风格。可以使用以下几种方法来与RESTful Booker进行交互:
在本文中,我们将使用 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服务进行交互。