Restful API 吹的五大三粗,为啥我用不起来?缺一样工具
引言
程序开发我们免不了要与其他系统,或者与第三方软件数据提供商进行数据交互。一般的最佳实践就是使用API进行。那么在初期开发的时候,如何快速的测试接口的使用方式,或者快速的定位故障。有没有比较便捷的工具呢?
今天我们要说的就是 curl 指令。这个工具非常强大。几乎提供了一个浏览器。对于接口调试所拥有的各项功能,而且各大编程语言所使用的底层网络请求库,通过它来实现的。
本文通过接口调试中常见的几种协议和传参方式,向大家介绍 curl 的快速用法。
HTTP网络请求参数
HTTP网络请求一般会有下面四个常用参数:
endpoint - 这是客户端用于与服务器通信的URL。method - 它告诉服务器客户端想要执行什么操作。最常用的方法有GET、POST、PUT、DELETE和PATCH。header - 用于在服务器和客户端之间传递附加信息,如授权。body - 发送到服务器的数据。curl 用法
最基本的用法像下面这样。
curl [options] [URL...]其中 options 部分一般常用的有:
-X, --request - 请求方法-i, --include - 包含响应体的header-d, --data - 发送的数据-H, --header - 额外的头信息HTTP GET 请求
GET 是 curl 默认的请求方式,用于从服务器获取指定的资源。比如从目标服务器获取内容:
curl https://example.com/posts或者根据需要传递 query string 查询参数:
curl https://example.com/post?id=4820HTTP POST 请求
一般用于把数据推送给服务器用于更新操作。传递的参数体(form-data)使用 -d 选项指定:
curl -X POST -d "userId=5&title=Hello World&body=Post body." https://example.com/posts因为是表单提交,传送给服务器的数据体有可能很大,需要经过编码分块后传输,那么此时需要在头部指定类型。比如 curl 默认使用
Content-Type:
application/x-www-form-urlencoded 头部编码方式。所有的数据会使用 urlencode 进行编码。如果我们传递的是一个 json 结构体的字符串,可以手动指定:
curl -X POST -H "Content-Type: application/json" -d {"userId": 5, "title": "Hello World", "body": "Post body."} https://example.com/postsHTTP PUT 请求
一般用于更新服务器上的数据,或者替换已存在数据。这是约定俗成的一种做法。
比如下面的例子,更新指定 post_id = 5 的数据:
curl -X PUT -d "userId=5&title=Hello World&body=Post body." https://example.com/posts/5HTTP PATCH 请求
上一节中的 PUT 请求,更新整体数据。如果仅是更新一条数据的某个字段,或一部分字段,可以选用 PATCH 方式:
curl -X PATCH -d "title=Hello Universe" https://example./posts/5HTTP DELETE 请求
增删改查就剩下删除没说了,当然是用 DELETE 方法。从服务器移除已存在的资源。
curl -X DELETE https://example.com/posts/5授权访问
如果API端点需要身份验证,则需要获取访问密钥。否则,API服务器将以“禁止访问”或“未经授权”的响应消息进行响应。获取访问密钥的过程取决于使用的API。
一旦拿到授权 token,就可以像下面这样请求:
curl -X GET -H "Authorization: Bearer {ACCESS_TOKEN}" "https://api.server.io/posts"写在最后
如果大家调试过微信公众号,应该对上面所使用的方法以及授权过程不会陌生。这是行业惯例以及API最佳实践。
使用 curl 的好处是我们可以随心所欲地随时调试,而不必构建一套程序。
Happy coding :_)
我是 @程序员小助手 ,持续分享编程知识,欢迎关注。
以上就是关于《Restful API 吹的五大三粗,为啥我用不起来?缺一样工具》的全部内容,本文网址:https://www.7ca.cn/baike/23875.shtml,如对您有帮助可以分享给好友,谢谢。