RESTful API 极懒笔记之二 [响应篇1--理论]

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39570415/article/details/81903166

*Note:

本篇所有请求内容类型(Content-Type)均为 application/json
本篇所有实现基于Spring框架

0. 参考资料

  1. Kemikit.RESTful API Design: How to handle errors?

  2. 筑码网.企业实战之spring项目《接口响应体格式统一封装》

  3. 菜鸟教程.RESTful 架构详解


正篇开始, 关于 RESTful API 的响应(Response)我分为几部分:

符合 RESTful 风格的响应设计
实践: 正常返回
实践: 异常返回

1. 怎么设计响应才算符合 RESTful 风格

关于 RESTful API 设计的一些理论可以看一下我的另外一篇 RESTful API 笔记整理

1.1. 状态码(Status Code)

有关业务异常, HTTP 状态码是返回200, 然后在请求体返回具体业务异常信息?还是直接抛出对应的异常状态码(4**/5**等)呢?

度娘告诉我, 这纯属由公司和前后端沟通决定. 但上文的作者认为:

——Use HTTP status codes until you bleed!(只要血液还在流动就一直使用 HTTP 状态码)

使用 HTTP 状态码配合响应体的业务状态码,让 API 调用者清楚知道问题所在

1.2. 使用HATEOAS

主要就是使用超链接使得 API 第三方调用者知道资源的相关操作, 个人觉得只是提高接口的易用性.


2. 响应设计示例

根据以上两点, 我们可以开始设计响应格式, 我所使用的返回格式如下:

2.1. 正常响应

// 正常响应
{
    "data": ["data1", "data2", "data3"...],// 响应数据
    "code": 200,// 业务状态码
    "msg": "登陆成功", // 业务详细信息
    "links": {// API相关的其他接口信息
        "link1": xxx,
        "link2": xxx,
    },
    "paging": {// 分页字段,当有分页才显示
        "total": 3,// 总页数
        "size": 5,// 页面容量
        "page": 2,// 当前页面
        "prev": "http://localhost:8080/statistics?page=1&size=5",// 前一页url
        "next": "http://localhost:8080/statistics?page=3&size=5"// 后一页url
    }
}

2.2. 异常响应

// 异常响应
// 响应头
HTTP/1.1 400 Bad Request
Content-Type: application/json

// 响应体
{
    "code": 1000,// 业务状态码
    "msg": "验证失败",// 业务详细信息
    "errors": [// 多个错误信息(如验证)
        {"code": 2000, "msg": "错误信息"},
        {"code": 2001, "msg": "错误信息"}
    ]
}

有了目标, 我们就可以倒推来写实现代码了!

正常返回可以参考 响应篇2–正常返回
异常返回可以参考 响应篇2–异常返回

展开阅读全文

RESTFUL api

06-27

<p style="color:#333333;">n Javascript数据交互是JS知识点的核心部分,可以稍微片面的说,不会JS数据交互,等于不会Javascript,可见学习这门课程的重要性。n</p>n<p style="color:#333333;">n 忠彬老师主讲的《JS数据交互实战应用》课程,既适合新学员掌握相关的知识,还有益于老JSer们查缺补漏,很值得学习!n</p>nn 为什么要学Javascript数据交互课程?nn<p style="color:#333333;">n 学了Javascript,却不会数据交互,就好像建筑师没了图纸,盖不起大楼来;n</p>n<p style="color:#333333;">n Javascript数据交互是日常工作汇总,100%会用到的技能;n</p>n<p style="color:#333333;">n 相当一部分JS开发者,都会数据交互,但总是在关键时候“失灵”;n</p>n<p style="color:#333333;">n 学习JS数据交互,对提升薪资待遇有帮助。n</p>nn 课程特点nn<p style="color:#333333;">n 1. 理论知识与实战项目相结合;n</p>n<p style="color:#333333;">n 2. 疑问式教学,更适合新手学员;n</p>n<p style="color:#333333;">n 3. 讲师思路清晰,教学风格不失分风趣幽默;n</p>n<p style="color:#333333;">n </p><p>n <strong><span style="font-size:16px;">课程核心价值点</span></strong>n </p>n <p>n   1、AJAX的前世今生。n </p>n <p>n   2、AJAX交互的详细过程。n </p>n <p>n   3、AJAX数据解析。n </p>n <p>n   4、AJAX与常见API接口数据获取。n </p>n <p>n   5、回调函数、ES6函数。n </p>n <p>n   6、自定义Fetch API(Async&amp;Await)库封装。n </p>n <p>n   <span style="font-size:16px;">整个课程通过实际案例讲解、全方面了解项目开发中数据交互的实际应用。</span><span></span>n </p>n <p>n <span><br /></span>n </p>n

没有更多推荐了,返回首页