使用curl调用restful API

2023-05-06 03:59:18

 

我们的示例天气API除了GET方法外,不允许您使用其他任何方法,因此,在本练习中,要使用其他带有curl的方法,我们将使用Swagger的petstore API。但是,我们实际上将不会使用Swagger UI(稍后将对此进行探讨)。目前,我们只需要一个可用于创建,更新和删除内容的API。在此示例中,使用Petstore API,您将创建一个新宠物,更新该宠物,获取该宠物的ID,删除该宠物,然后尝试获取已删除的宠物。

目录

创建一个新宠物更新你的宠物通过ID获取宠物的名字删除你的宠物将curl导入Postman在Postman中导出curl创建一个新宠物

要创建宠物,您必须在请求正文中传递JSON消息。您无需将JSON编码并传递到URL中,而是将JSON存储在文件中并引用该文件。

1.将以下内容插入文本文件。此信息将在curl请求的-d参数中传递:

{ "id": 123, "category": { "id": 123, "name": "test" }, "name": "fluffy", "photoUrls": [ "string" ], "tags": [ { "id": 0, "name": "string" } ], "status": "available"}

2. 将第一个id值更改为另一个整数(整数)。另外,将宠物的fluffy名称更改为其他名称。

3. 将文件保存在您可以从终端方便地访问的目录中,例如用户目录(在Mac上为Users / YOURUSERNAME-在计算机上用您的实际用户名替换YOURUSERNAME)。

4. 在终端中,浏览到保存mypet.json文件的目录。(通常,默认目录为Users / YOURUSERNAME,因此是上一步。)如果您从未使用命令行浏览过目录,请按照以下步骤操作:

在Mac上,通过输入pwd查找当前的工作目录。然后通过键入更改目录cd ../将其上移。通过键入cd pets向下移动一个级别,其中pets是要移动到的目录的名称。键入ls列出目录的内容。在Windows上,查看提示路径以查看当前目录。然后通过输入cd ../向上移动一个级别。通过键入cd pets向下移动一个级别,其中pets是要移动到的目录的名称。键入dir以列出当前目录的内容。

在终端或命令提示符与JSON文件位于同一目录中之后,使用以下curl请求创建新宠物:

curl -X POST --header "Content-Type: application/json" --header "Accept: application/json" -d @mypet.json "http://petstore.swagger.io/v2/pet"

Content-Type指示在请求正文中提交的内容的类型。接受表示我们将在响应中接受的内容类型。响应应如下所示:

{"id":51231236,"category":{"id":4,"name":"testexecution"},"name":"fluffernutter","photoUrls":["string"],"tags":[{"id":0,"name":"string"}],"status":"available"}

在响应中,检查是否已返回您宠物的名字。

更新您的宠物

猜猜是什么,您的宠物讨厌它的名字!使用更新宠物方法将宠物的名字更改为更正式的名称。

在mypet.json文件中,更改宠物的名称。使用PUT方法而不是POST来更新宠物的名字(否则保持相同的curl内容):curl -X PUT --header "Content-Type: application/json" --header "Accept: application/json" -d @mypet.json "http://petstore.swagger.io/v2/pet"通过ID获取宠物的名字

通过将ID传递到/ pet / {petID}端点来找到您的宠物的名字:

在您的mypet.json文件中,复制第一个id值。使用此curl命令获取有关该宠物ID的信息,将51231236替换为您的宠物ID。curl -X GET --header "Accept: application/json" "http://petstore.swagger.io/v2/pet/51231236"

回复中包含您宠物的名字和其他信息:

{"id":51231236,"category":{"id":4,"name":"test"},"name":"mr. fluffernutter","photoUrls":["string"],"tags":[{"id":0,"name":"string"}],"status":"available"}

您可以通过将JSON粘贴到JSON格式化工具中来对其进行格式化:

{ "id": 51231236, "category": { "id": 4, "name": "test" }, "name": "mr. fluffernutter", "photoUrls": [ "string" ], "tags": [ { "id": 0, "name": "string" } ], "status": "available"}删除你的宠物

不幸的是,您的宠物已经死亡。现在是时候从宠物注册表中删除您的宠物了。

1.使用DELETE方法删除您的宠物。将5123123替换为您的宠物ID:

curl -X DELETE --header "Accept: application/json" "http://petstore.swagger.io/v2/pet/5123123"

2.现在检查以确保您的宠物已被移除。使用GET请求查找具有该ID的宠物:

curl -X GET --header "Accept: application/json" "http://petstore.swagger.io/v2/pet/5123123"

您应该看到以下错误消息:

{"code":1,"type":"error","message":"Pet not found"}

此示例使您能够了解如何使用curl创建,读取,更新和删除资源。这四个操作称为CRUD,几乎对每种编程语言都通用。

尽管Postman可能更易于使用,但是curl有助于提高功耗。质量保证团队通常会构建高级测试场景,这些场景会通过大量的curl请求进行迭代。

将curl导入Postman

您可以通过执行以下操作将curl命令导入Postman:

1.在Postman中打开一个新标签,然后单击左上角的导入按钮。

2.选择粘贴原始文本并插入curl命令:

curl -X GET --header "Accept: application/json" "http://petstore.swagger.io/v2/pet/5123123"

请确保一开始没有多余的空格。

‌3.单击导入。

4.关闭对话框。

5.单击发送。(如果删除了宠物,您将看到与以前相同的“找不到宠物”错误消息。)

从Postman中导出curl

您还可以通过执行以下操作将Postman导出curl:

1.如果需要,请在Postman中选择您的OpenWeatherMap API请求之一。

2.点击代码按钮(位于保存下方)。

3. 从下拉菜单中选择curl。

4. 复制代码段。

curl -X GET \ https://api.openweathermap.org/data/2.5/weather?lat=37.3565982&lon=-121.9689848&units=imperial&appid=fd4698c940c6d1da602a70ac34f0b147 \ -H Postman-Token: de0da6b7-1dbc-44d6-acc1-9741f05a7bf1 \ -H cache-control: no-cache

您可以看到Postman向请求中添加了一些额外的标头信息(-HPostman-Token:

de0da6b7-1dbc-44d6-acc1-9741f05a7bf1 -Hcache-control:no-cache)。多余的标题信息是不必要的,可以删除。

5. 删除反斜杠和换行符。如果您使用的是Windows,请将单引号更改为双引号。

6. 将curl命令插入终端,然后观察结果。

curl -X GET "https://api.openweathermap.org/data/2.5/weather?lat=37.3565982&lon=-121.9689848&units=imperial&appid=fd4698c940c6d1da602a70ac34f0b147"

通过Postman的导入和编码功能,您可以轻松地在Postman和curl之间切换。


以上就是关于《使用curl调用restful API》的全部内容,本文网址:https://www.7ca.cn/baike/22816.shtml,如对您有帮助可以分享给好友,谢谢。
标签:
声明

排行榜