详解ES6 Fetch API HTTP请求实用指南(2)

如果我们想要访问数据,我们需要两个.then()处理程序(回调)。但是如果我们想要操纵资源,我们只需要一个  .then()处理程序。但是,我们可以使用第二个来确保已发送值。

基本提取API模板

//基于fetch的基本模块 fetch .then(response.something) //定义返回的类型和数据格式 .then(data) // 返回的数据

注意!以上示例仅用于说明目的。如果执行它,代码将不起作用。

获取API示例

显示用户

显示用户列表

创建新用户

删除用户

更新用户

注意!资源不会真正在服务器上创建,但会返回虚假结果来模仿真实服务器。

1.显示用户

如前所述,显示单个用户的过程包括两个  .then()处理程序(回调),第一个用于定义对象,第二个用于访问数据。
请注意,只需阅读查询url字符串,/users/2我们就能理解/预测API的作用。这也是rest api 的重要意义之一

例子

fetch('https://jsonplaceholder.typicode.com/users/2') .then(response => response.json()) //定义返回的类型和数据格式 .then(data => console.log(data)) // 返回的数据 // 数据示例: // { // "id": 2, // "name": "Ervin Howell", // "username": "Antonette", // "email": "Shanna@melissa.tv", // "address": { // "street": "Victor Plains", // "suite": "Suite 879", // "city": "Wisokyburgh", // "zipcode": "90566-7771", // "geo": { // "lat": "-43.9509", // "lng": "-34.4618" // } // }, // "phone": "010-692-6593 x09125", // "website": "anastasia.net", // "company": { // "name": "Deckow-Crist", // "catchPhrase": "Proactive didactic contingency", // "bs": "synergize scalable supply-chains" // } // }

2.显示用户列表

该示例几乎与前一个示例相同,只是查询字符串是/users,而不是/users/2。

例子

fetch('https://jsonplaceholder.typicode.com/users') .then(response => response.json()) //定义返回的类型和数据格式 .then(data => console.log(data)) // 返回的数据 // 数据示例: // [ // { // "id": 1, // "name": "Leanne Graham", // "username": "Bret", // "email": "Sincere@april.biz", // "address": { // "street": "Kulas Light", // "suite": "Apt. 556", // "city": "Gwenborough", // "zipcode": "92998-3874", // "geo": { // "lat": "-37.3159", // "lng": "81.1496" // } // }, // "phone": "1-770-736-8031 x56442", // "website": "hildegard.org", // "company": { // "name": "Romaguera-Crona", // "catchPhrase": "Multi-layered client-server neural-net", // "bs": "harness real-time e-markets" // } // } // 更多... // ]

3.创建新用户

这个看起来与前面的例子有点不同。如果熟悉HTTP协议,它给我们提供了很多的方法,如POST,GET,DELETE,UPDATE,PATCH和PUT。这些方法是简单描述要执行的操作类型的动词,主要用于操作服务器上的资源/数据。

无论如何,为了使用Fetch API创建新用户,我们需要使用HTTP谓词POST。但首先,我们需要在某处定义它。幸运的是,Init我们可以传递一个可选参数,用于定义自定义设置的URL,例如方法类型,正文,凭据,标题等。

例子

fetch('https://jsonplaceholder.typicode.com/users',{ method: 'POST', body: JSON.strignify({ username: '张三', email: 'elonasdfk@gmail.com', userId: 1 }), headers: { 'Content-Type': 'application/json;charset=utf-8'} })

4.删除用户

为了删除用户,我们首先需要定位用户/users/1,然后我们定义方法类型DELETE。

例子

fetch('https://jsonplaceholder.typicode.com/users/1',{ methods: 'DELETE' })

5.更新用户

HTTP谓词PUT用于操作目标资源,如果要进行部分更改,则需要使用PATCH。

例子

fetch('https://jsonplaceholder.typicode.com/users',{ method: 'PUT', body: JSON.strignify({ username: '张三', email: 'elonasdfk@gmail.com', userId: 1 }), headers: { 'Content-Type': 'application/json;charset=utf-8'} })

结论

现在,你已基本了解如何使用JavaScript的Fetch API从服务器检索或操作资源,以及如何处理promise。您可以使用本文作为如何构建CRUD操作的API请求的指南。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/d843f212c21cfae1f52d8d167c8007ad.html