开发篇:剖析REST API request

Blog链接:https://blog.51cto.com/13969817

今天跟大家分享一下REST Request,他们是如何组合在一起的以及如何使用它们?

我们先分析REST请求,分2部分:方法和URI,是标准的HTTP operators,包括get, post, put, patch, delete, options和head,所列出的这些方法是否对提供的URI的资源有效取决于REST API的配置和当前用户的授权功能。

我们以WordPress为例,我们想要一个WordPress站点上最新帖子的列表(因为WordPress提供了健壮和构建良好的REST API),我们向所有帖子的资源URI发送一个GET请求,如下:

GET /wp-json/wp/v2/posts/HTTP/1.1
Host: appsite.dev
Content-Type: application/json
Authorization: Basic dG9tOnBhc3N3b3JK
Cache-Control: no-cache

得到site.com/wp-json/wp/v2/posts. 当我们提交请求时,我们还可以在请求头中发送元数据,这些数据应该包括符合自描述消息约束的内容类型,还可以包含用户代理字符串,可接受的语言字符串,身份验证,缓存控制等。

如果我们希望像REST API发送信息以创建新条目或更新现有条目,那么请求将变得更加复杂,因为我们必须发送实际的数据。

GET /wp-json/wp/v2/posts/HTTP/1.1
Host: appsite.dev
Content-Type: application/json
Authorization: Basic dG9tOnBhc3N3b3JK
Cache-Control: no-cache

{
''title" : " Byron creates a new task generated from the REST API", ''Content" : " This is the content for the new post.", "author" : 10,
}

这里,请求的数据结构需要匹配请求中定义的内容类型,因此在本例中,内容类型设置为application/json,这意味着数据也必须标记为json。要通过WordPress REST API 创建新文章,我们需要通过与之前相同的URI向文章的资源发送一个post 请求,传递身份验证信息以访问该资源。将内容类型声明为application/json, 然后包含发布的实际json数据。

Var xhr = new XMLHttpRequest ();
Xhr.open ("GET", " https://site.com/wp-json/wp/v2/posts", true); xhr.onload =function() { console.log (xhr.responseText);
};
Xhr.send();

注意:我们通常不需要手工输入这些请求,一些元数据可以自动处理,在一个普通的应用程序中,我们使用脚本来处理请求和响应,最常见的是JavaScript。在老式的JavaScript中,我们刚讨论的GET请求将是这样的,在这里我们打开到指定的URI的GET请求,然后捕获要在控制台中记录的响应,使用jQuery AJAX, POST请求应该是这样的,在这里,我们做同样的事情,定义一个URI,向它发送一个POST请求,添加一些数据,成功后捕获要在控制台中记录的响应。

$.ajax( {
Url:" https://site.com/wp-json/wp/v2/posts",
Type: "Post",
Data: {
Title: "Byron creates a new task generated from the REST API", ''Content" : " This is the content for the new post.", "author" : 10,
},
Success: function (response){
Console.log(response);
}
});

接下来的文章,将陆续为大家介绍Discovery、Resource和Methods。

猜你喜欢

转载自blog.51cto.com/13969817/2480527