博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
你必须掌握的 RESTful 后端接口设计参考书
阅读量:6291 次
发布时间:2019-06-22

本文共 3128 字,大约阅读时间需要 10 分钟。

RESTful

RESTful 是 HTTP 协议的一种规则

HTTP服务可用端口最大为 65535

HTTP URL

http://domain:addr/path?query#anchor

domain  # 域名地址addr    # 端口:HTTP:80/HTTPS:443path    # 资源路径query   # 资源筛选参数anchor  # 锚点:页面定位复制代码

RESTful API —— 设计要素

1.请求方法

| POST   | 提交 | 返回: 提交的信息| GET    | 获取 | 返回: 获取到的数据| PUT    | 替换 | 返回: 被替换的完整信息| PATCH  | 更新 | 返回: 仅被更新的字段| DELETE | 销毁 | 返回: 204复制代码

2.资源路径

http://api.example.com/v1/assets/id

http://      # 请求协议api.         # API子域example.com  # 域名/v1          # API版本/assets      # 资源路径(复数)/id          # 资源Id复制代码

3.过滤信息

  • Query
基本格式: url?key=value多个条件: url?key=value&key=value分页示范: url?page=2复制代码

4.状态代码

  • 常用的响应状态码
200 —— OK                    // 成功返回201 —— Created               // 成功创建204 —— No Content            // 成功销毁400 —— Bad Request           // 语法错误401 —— Unauthorized          // 没有权限403 —— Forbidden             // 请求被拒404 —— Not Found             // 找不到资源500 —— Internal Server Error // 内部服务器错误501 —— Not Implemented       // 服务器无法受理复制代码

5.返回响应信息

{    "code": 200,    "message": "",    "body": ""}复制代码

完整的 HTTP 状态码

响应: HTTP/1.1 200 OK

1xx(临时响应)

100 —— Continue             // 继续请求,服务器正在等待101 —— Switching Protocol   // 服务器准备切换协议103 —— // 一个新的状态码,可以让服务器在主标题之前尽早发送标题,这有助于预加载等优化复制代码

2xx(响应成功)

200 —— OK                   // 成功返回了资源201 —— Created              // 成功创建了资源202 —— Accepted             // 请求接受但未处理203 —— Non-Authoritative Information // 返回资源未授权204 —— No Content           // 成功销毁了资源205 —— Reset Content        // 重置内容,无任何资源返回206 —— Partial Content      // 处理了部分请求复制代码

3xx(请求重定向)

300 —— Multiple Choice      // 选择服务器提供的多种操作301 —— Moved Permanently    // 永久移除,自动转跳到新的资源302 —— Found                // 自动转跳到新的资源303 —— See Other            // 查看资源位置304 —— Not Modified         // 请求资源未修改305 —— Use Proxy            // 需要代理307 —— Temporary Redirect   // 临时重定向308 —— Permanent Redirect   // 永久重定向复制代码

4xx(请求错误)

400 —— Bad Request              // 请求字段语法错误401 —— Unauthorized             // 请求未经授权403 —— Forbidden                // 请求被服务器拒绝404 —— Not Found                // 找不到资源405 —— Method Not Allowed       // 请求方法不允许406 —— Not Acceptable           // 请求不可接受407 —— Proxy Authentication Required // 服务器代理需要授权408 —— Request Timeout          // 请求超时409 —— Conflict                 // 请求冲突410 —— Gone                     // 请求的资源已销毁411 —— Length Required          // 指定有效内容长度标头412 —— Precondition Failed      // 请求条件无法满足413 —— Payload Too Large        // 请求体过大414 —— URI Too Long             // 请求URL过长415 —— Unsupported Media Type   // 请求的类型不支持416 —— Requested Range Not Satisfiable // 请求的范围不符合要求417 —— Expectation Failed       // 服务器未满足请求标头的要求426 —— Upgrade Required         // 升级所需428 —— Precondition Required    // 要求先决条件429 —— Too Many Requests        // 太多的要求431 —— Request Header Fields Too Large // 请求头字段太大451 —— Unavailable For Legal Reasons  // 因法律原因不可用复制代码

5xx(服务器错误)

500 —— Internal Server Error        // 内部服务器错误501 —— Not Implemented              // 服务器无法受理502 —— Bad Gateway                  // 服务器网关错误503 —— Service Unavailable          // 服务器不可用504 —— Gateway Timeout              // 服务器代理超时505 —— HTTP Version Not Supported      // 不支持的HTTP版本511 —— Network Authentication Required // 网络认证要求复制代码

转载地址:http://dtcta.baihongyu.com/

你可能感兴趣的文章
zip 数据压缩
查看>>
Python爬虫学习系列教程
查看>>
【数据库优化专题】MySQL视图优化(二)
查看>>
【转载】每个程序员都应该学习使用Python或Ruby
查看>>
PHP高级编程之守护进程,实现优雅重启
查看>>
PHP字符编码转换类3
查看>>
rsync同步服务配置手记
查看>>
http缓存知识
查看>>
Go 时间交并集小工具
查看>>
iOS 多线程总结
查看>>
webpack是如何实现前端模块化的
查看>>
TCP的三次握手四次挥手
查看>>
关于redis的几件小事(六)redis的持久化
查看>>
webpack4+babel7+eslint+editorconfig+react-hot-loader 搭建react开发环境
查看>>
Maven 插件
查看>>
初探Angular6.x---进入用户编辑模块
查看>>
计算机基础知识复习
查看>>
【前端词典】实现 Canvas 下雪背景引发的性能思考
查看>>
大佬是怎么思考设计MySQL优化方案的?
查看>>
<三体> 给岁月以文明, 给时光以生命
查看>>