在本文中,我们将讨论如何使用Curl与RESTful API进行交互。curl是一个命令行实用程序,用于从远程服务器或向远程服务器传输数据,默认情况下,它已安装在macOS和大多数Linux发行版上。如果没有安装,可参考在CentOS 8发行版上安装Curl的方法。
介绍 应用程序接口(API)是允许软件程序相互通信的一组定义和协议。 REST一词用于代表性的状态转移,它是一种体系结构样式,由创建Web服务时要使用的一组约束组成。 RESTful API是遵循REST体系结构的API,通常,REST API使用HTTP协议来发送和检索数据以及JSON格式的响应,您可以使用标准的HTTP方法通过API创建、查看、更新或删除资源。 要测试RESTful API并与之交互,可以使用任何可以发出HTTP请求的库或工具。 API请求由四个不同部分组成: endpoint,这是客户端用于与服务器通信的URL。 HTTP method,它告诉服务器客户端要执行什么操作,最常见的方法是GET POST PUT DELETE和PATCH。 headers,用于在服务器和客户端之间传递其他信息,例如授权。 body,数据发送到服务器。
Curl选项 curl命令的语法如下: curl [options] [URL...] 在发出请求时,我们将使用以下选项: -X,--request-要使用的HTTP方法。 -i,--include-包括响应头。 -d,--data-要发送的数据。 -H,--header-要发送的附加头。 参考curl命令_Linux curl命令使用详解:利用URL规则在命令行下工作的文件传输工具。
HTTP GET GET方法从服务器请求特定资源。 使用curl发出HTTP请求时,GET是默认方法,以下是向所有帖子的JSON表示形式向JSONPlaceholder API发出GET请求的示例: curl https://jsonplaceholder.typicode.com/posts 要过滤结果,请使用查询参数: curl https://jsonplaceholder.typicode.com/posts?userId=1
HTTP POST POST方法用于在服务器上创建资源,如果资源存在,则将其覆盖。 以下命令将使用-d选项指定的数据创建一个新帖子: curl -X POST -d "userId=5&title=Hello World&body=Post body." https://jsonplaceholder.typicode.com/posts 请求正文的类型使用Content-Type标头指定,默认情况下,如果不指定此标头,curl使用Content-Type: application/x-www-form-urlencoded。 要发送JSON格式的数据,请将主体类型设置为application/json: curl -X POST -H "Content-Type: application/json" \ -d '{"userId": 5, "title": "Hello World", "body": "Post body."}' \ https://jsonplaceholder.typicode.com/posts
HTTP PUT PUT方法用于更新或替换服务器上的资源,它将指定资源的所有数据替换为请求数据: curl -X PUT -d "userId=5&title=Hello World&body=Post body." https://jsonplaceholder.typicode.com/posts/5
HTTP PATCH 用于对服务器上的资源进行部分更新: curl -X PUT -d "title=Hello Universe" https://jsonplaceholder.typicode.com/posts/5
HTTP DELETE DELETE方法从服务器中删除指定的资源: curl -X DELETE https://jsonplaceholder.typicode.com/posts/5
认证方式 如果API端点需要身份验证,则需要获取访问密钥,否则,API服务器将使用“Access Forbidden”或“Unauthorized”响应消息进行响应。 获取访问密钥的过程取决于您使用的API,获得访问令牌后,可以在标头中发送它: curl -X GET -H "Authorization: Bearer {ACCESS_TOKEN}" "https://api.server.io/posts"
相关主题 |