文章目录
{ .ImgAlt }}

一个应用程序接口(API)是一系列定义和协议,它允许软件程序互相通信。

REST 这个词语表示表述性状态转移。它是一个架构风格,包含了创建 web 服务的一系列约束条件。

RESTful API 是一个遵循 REST 架构的 API。典型的 REST API 使用 HTTP 协议来收发数据和 JSON 格式的响应。你可以使用标准的 HTTP 方法通过 API 去创建,查看,更新,删除资源。

想要测试和与 RESTful APIs 通信,你可以使用任何可以做出 HTTP 请求的库或者工具。

API 请求分为4个不同的部分:

  • 端点。这就是 URL,客户端用来和服务器交流的。
  • HTTP 方法。它告诉服务器客户端想要执行什么操作。最常见的方法是GET,POST,PUT,DELETE,和PATCH
  • 头部。 被用来在服务器和客户端之间传递额外信息,例如,授权信息。
  • body。发送给服务器的数据。

在这篇文章中,我们将会讨论如何使用curl和 RESTFUL APIs进行互动。curl是一个命令行工具,用来和服务器进行收发数据。它默认被 macOS 和大部分 Linux 发行版安装上了。

一、Curl 选项

curl命令语法如下:

curl [options] [URL...]

下面是一些选项,我们将会用来做 HTTP 请求:

  • -X,--request - 被用的 HTTP 方法
  • -i,--include - 包含响应头部
  • -d,--data - 将要被发送的数据
  • -H,--header - 将要被发送的请求头部

二、HTTP GET

GET 从服务器请求指定资源

GET 是使用curl做出 HTTP 请求的默认方法。下面是一个使用 GET 请求 JSONPlaceholder API 的例子:

curl https://jsonplaceholder.typicode.com/posts

想要使用 query 参数过滤结果:

curl https://jsonplaceholder.typicode.com/posts?userId=1

三、HTTP POST

POST 方法被用来从服务器创建资源。如果资源存在,它将被覆盖。

下面的命令将会创建一个 post,通过-d选项指定数据:

curl -X POST -d "userId=5&title=Hello World&body=Post body." https://jsonplaceholder.typicode.com/posts

请求 body 的类型使用Content-Type头部指定。默认情况下,如果 header 没有指定,curl使用Content-Type: application/x-www-form-urlencoded

想要发送一个 JSON 格式的数据,将 body 类型设置为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

PATCH 方法被用来对服务器上的资源进行部分更新。

curl -X PATCH -d "title=Hello Universe" https://jsonplaceholder.typicode.com/posts/5

六、HTTP DELETE

DELETE 被用来移除服务器上的指定资源。

curl -X DELETE https://jsonplaceholder.typicode.com/posts/5

七、鉴权

如果 API 端点需要鉴权,你需要获取一个访问 Key。否则,API 服务器将会响应 “Access Forbidden” 或者 “Unauthorized” 。

获取 access key 的过程依赖于你使用的 API。一旦你拥有 access token,你可以在 http 请求头部中放入它,并发出 HTTP 请求:

curl -X GET -H "Authorization: Bearer {ACCESS_TOKEN}" "https://api.server.io/posts"

八、总结

我们已经向你展示了如何使用curl来测试 API 请求。想要获取更多关于curl的信息,浏览Curl 文档页面

腾讯云学生服务器_学生机_云服务器优惠套餐-云+校园 - 腾讯云



如果你有任何疑问,请通过以下方式联系我们:

微信:

微信群: 加上面的微信,备注微信群

QQ: 3217680847

QQ 群: 82695646 雪梦科技交流群

原文 :https://linuxize.com/post/curl-rest-api/

    版权声明:本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。知识共享许可协议
阿里云: 爆款云服务器低至1折,1核1G 1M 仅17月/月

相关推荐