我们的示例天气API除了GET方法外,不允许您使用其他任何方法,因此,在本练习中,要使用其他带有curl的方法,我们将使用Swagger的petstore API。但是,我们实际上将不会使用Swagger UI(稍后将对此进行探讨)。目前,我们只需要一个可用于创建,更新和删除内容的API。在此示例中,使用Petstore API,您将创建一个新宠物,更新该宠物,获取该宠物的ID,删除该宠物,然后尝试获取已删除的宠物。
目录
要创建宠物,您必须在请求正文中传递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,因此是上一步。)如果您从未使用命令行浏览过目录,请按照以下步骤操作:
在终端或命令提示符与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"}
在响应中,检查是否已返回您宠物的名字。
猜猜是什么,您的宠物讨厌它的名字!使用更新宠物方法将宠物的名字更改为更正式的名称。
curl -X PUT --header "Content-Type: application/json" --header "Accept: application/json" -d @mypet.json "http://petstore.swagger.io/v2/pet"
通过将ID传递到/ pet / {petID}端点来找到您的宠物的名字:
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:
1.在Postman中打开一个新标签,然后单击左上角的导入按钮。
2.选择粘贴原始文本并插入curl命令:
curl -X GET --header "Accept: application/json" "http://petstore.swagger.io/v2/pet/5123123"
请确保一开始没有多余的空格。
3.单击导入。
4.关闭对话框。
5.单击发送。(如果删除了宠物,您将看到与以前相同的“找不到宠物”错误消息。)
您还可以通过执行以下操作将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向请求中添加了一些额外的标头信息(-H'Postman-Token:de0da6b7-1dbc-44d6-acc1-9741f05a7bf1' -H'cache-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之间切换。