|
4 K/ E, q. K* Z3 V) B8 ]2 T
我们的示例天气API除了GET方法外,不允许您使用其他任何方法,因此,在本练习中,要使用其他带有curl的方法,我们将使用Swagger的petstore API但是,我们实际上将不会使用Swagger UI(稍后将对此进行探讨)。 " a6 ]3 q, S5 {0 g0 W& s% J
目前,我们只需要一个可用于创建,更新和删除内容的API在此示例中,使用Petstore API,您将创建一个新宠物,更新该宠物,获取该宠物的ID,删除该宠物,然后尝试获取已删除的宠物目录创建一个新宠物更新你的宠物
4 H4 G7 e& g1 S) Q# D 通过ID获取宠物的名字删除你的宠物将curl导入Postman在Postman中导出curl创建一个新宠物要创建宠物,您必须在请求正文中传递JSON消息您无需将JSON编码并传递到URL中,而是将JSON存储在文件中并引用该文件。
1 Z6 W9 q; Q/ x# r' V f 1.将以下内容插入文本文件此信息将在curl请求的-d参数中传递:{ "id": 123, "category": { "id": 123, "name": "test" }, "name"
) i+ F! M- G. c) ~: |( [ : "fluffy", "photoUrls": [ "string" ], "tags": [ { "id": 0, "name": "string" } ],
) N G; c0 Q! q. m "status": "available"}2. 将第一个id值更改为另一个整数(整数)另外,将宠物的fluffy名称更改为其他名称3. 将文件保存在您可以从终端方便地访问的目录中,例如用户目录(在Mac上为Users / YOURUSERNAME-在计算机上用您的实际用户名替换YOURUSERNAME)。
/ Q# C% C6 \. C6 p/ A 4. 在终端中,浏览到保存mypet.json文件的目录(通常,默认目录为Users / YOURUSERNAME,因此是上一步)如果您从未使用命令行浏览过目录,请按照以下步骤操作:在Mac上,通过输入pwd查找当前的工作目录。 ; L; Z+ r* y1 \$ U# Z% o1 v
然后通过键入更改目录cd ../将其上移通过键入cd pets向下移动一个级别,其中pets是要移动到的目录的名称键入ls列出目录的内容在Windows上,查看提示路径以查看当前目录然后通过输入cd ../向上移动一个级别。
, S% ^7 }0 p' i4 t1 B( k* T* D 通过键入cd pets向下移动一个级别,其中pets是要移动到的目录的名称键入dir以列出当前目录的内容在终端或命令提示符与JSON文件位于同一目录中之后,使用以下curl请求创建新宠物:curl -X POST --header
" Z' M4 D: X% b' \6 V0 c "Content-Type: application/json" --header "Accept: application/json" -d @mypet.json "http://petstore.swagger.io/v2/pet" 2 c6 y# @3 H2 W2 T! f" T
Content-Type指示在请求正文中提交的内容的类型接受表示我们将在响应中接受的内容类型响应应如下所示:{"id":51231236,"category":{"id":4,"name":"testexecution"。
" `* N; i8 D; }% L },"name":"fluffernutter","photoUrls":["string"],"tags":[{"id":0,"name":"string"}],"status":"available"
' S) O; X5 _, g2 R. k# C }在响应中,检查是否已返回您宠物的名字更新您的宠物猜猜是什么,您的宠物讨厌它的名字!使用更新宠物方法将宠物的名字更改为更正式的名称在mypet.json文件中,更改宠物的名称使用PUT方法而不是POST来更新宠物的名字(否则保持相同的curl内容):。
5 e( p' |. u9 l' D. i% M curl -X PUT --header "Content-Type: application/json" --header "Accept: application/json" -d @mypet.json
7 G6 S( Y# x6 r$ `/ s "http://petstore.swagger.io/v2/pet"通过ID获取宠物的名字通过将ID传递到/ pet / {petID}端点来找到您的宠物的名字:在您的mypet.json文件中,复制第一个id值。
" ?) u- p# D. t R- _ 使用此curl命令获取有关该宠物ID的信息,将51231236替换为您的宠物IDcurl -X GET --header "Accept: application/json""http://petstore.swagger.io/v2/pet/51231236"。 & I# p3 g1 C; Y# X- W1 x/ v
回复中包含您宠物的名字和其他信息:{"id":51231236,"category":{"id":4,"name":"test"},"name":"mr. fluffernutter","photoUrls" ( q7 \1 M: [* x. F- @: `8 x. R
:["string"],"tags":[{"id":0,"name":"string"}],"status":"available"}您可以通过将JSON粘贴到JSON格式化工具中来对其进行格式化:{ # C8 o" M: u8 P8 N3 L. U
"id": 51231236, "category": { "id": 4, "name": "test" }, "name": "mr. fluffernutter", "photoUrls" ! Z1 N1 t/ L% {$ W1 a/ ^7 x& a
: [ "string" ], "tags": [ { "id": 0, "name": "string" } ], "status": "available"
4 i+ Q) L1 V F/ x: x, g }删除你的宠物不幸的是,您的宠物已经死亡现在是时候从宠物注册表中删除您的宠物了1.使用DELETE方法删除您的宠物将5123123替换为您的宠物ID:curl -X DELETE --header "Accept: application/json" 8 V( @ N9 @. q0 F
"http://petstore.swagger.io/v2/pet/5123123"2.现在检查以确保您的宠物已被移除使用GET请求查找具有该ID的宠物:curl -X GET --header "Accept: application/json" + }. |3 g7 _4 g, I: U! j
"http://petstore.swagger.io/v2/pet/5123123"您应该看到以下错误消息:{"code":1,"type":"error","message":"Pet not found"
( D( q2 q+ I7 L8 J }此示例使您能够了解如何使用curl创建,读取,更新和删除资源这四个操作称为CRUD,几乎对每种编程语言都通用尽管Postman可能更易于使用,但是curl有助于提高功耗质量保证团队通常会构建高级测试场景,这些场景会通过大量的curl请求进行迭代。 " t# u2 y2 X3 S
将curl导入Postman您可以通过执行以下操作将curl命令导入Postman:1.在Postman中打开一个新标签,然后单击左上角的导入按钮2.选择粘贴原始文本并插入curl命令:curl -X GET --header 。 Q/ e6 I9 Y# ]. m0 B% n/ V; a6 z
"Accept: application/json""http://petstore.swagger.io/v2/pet/5123123"请确保一开始没有多余的空格。 ( h3 y: o9 |3 L3 d/ b
3.单击导入4.关闭对话框5.单击发送(如果删除了宠物,您将看到与以前相同的“找不到宠物”错误消息)从Postman中导出curl您还可以通过执行以下操作将Postman导出curl:1.如果需要,请在Postman中选择您的OpenWeatherMap API请求之一。 ; X) u3 F T9 U) v9 J: m
2.点击代码按钮(位于保存下方)。
M: V' f$ x2 U 3. 从下拉菜单中选择curl4. 复制代码段curl -X GET \ https://api.openweathermap.org/data/2.5/weather?lat=37.3565982&lon=-121.9689848&units=imperial&appid=fd4698c940c6d1da602a70ac34f0b147。 ; e6 g% j5 J9 P7 Y7 ~& [
\ -H Postman-Token: de0da6b7-1dbc-44d6-acc1-9741f05a7bf1 \ -H cache-control: no-cache您可以看到Postman向请求中添加了一些额外的标头信息(-HPostman-Token:
$ P: a# b4 P7 ^ de0da6b7-1dbc-44d6-acc1-9741f05a7bf1 -Hcache-control:no-cache)多余的标题信息是不必要的,可以删除5. 删除反斜杠和换行符如果您使用的是Windows,请将单引号更改为双引号。
( b7 o( i5 \# ^, D9 M 6. 将curl命令插入终端,然后观察结果curl -X GET "https://api.openweathermap.org/data/2.5/weather?lat=37.3565982&lon=-121.9689848&units=imperial&appid=fd4698c940c6d1da602a70ac34f0b147"。 9 m; c! M' N0 b( X4 x% `
通过Postman的导入和编码功能,您可以轻松地在Postman和curl之间切换。 . J3 N" c9 O. v+ h: w% i
' b# r! q/ d* J4 {
4 \* \2 v2 p# Y, ]4 U( C/ c
2 z4 c' ]' ]8 l7 M5 X- `- D4 t9 y* a/ o( u" u
|