博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RESTful API最佳实践(笔记)
阅读量:7174 次
发布时间:2019-06-29

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

一、参考资料

二、我的笔记

RESTful是一种API设计规范,用于Web数据接口的设计。

这篇文章的主要内容包括:

1.URL设计

  1. 动词+宾语。RESTful的核心思想是,客户端发出的数据操作指令都是"动词+宾语"的结构,如GET /articles。
  2. 动词的覆盖。有些客户端只能使用GET和POST,服务器必须接受使用POST模拟其他方法(通过X-HTTP-Method-Override属性)。
  3. 宾语必须是名词。
  4. 使用复数URL,如GET /articles/2。
  5. 避免多级URL。资源需要多级分类,如获取某个作者的某一类文章时,写成GET /authors/12/categories/2不利于扩展,语义也不明确。更好的做法是,除了第一级,其他都用查询字符串表达,如GET /authors/12?categories=2

2. 状态码

状态码必须精确。状态码有以下几大类:

状态码 含义
1xx 相关信息
2xx 操作成功
3xx 重定向
4xx 客户端错误
5xx 服务器错误

这几大类里面共包含100多种状态码。常用的有:

状态码 含义
200 OK
201 POST成功创建了资源
202 服务器接收了请求,但之后再处理(异步)
400 Bad Request
401 Unauthorized
404 请求的资源不存在
500 服务器内部错误

3. 应答

  1. 返回JSON,而不是纯文本,这样才能返回标准的结构化数据。
  2. 发生错误时,不要一律返回200状态码(把错误信息放在数据体里面)。
  3. 在应答中提供链接(HATEOAS)。比如访问:
{  "current_user_url": "https://api.github.com/user",  "current_user_authorizations_html_url": "https://github.com/settings/connections/applications{/client_id}",  "authorizations_url": "https://api.github.com/authorizations",  "code_search_url": "https://api.github.com/search/code?q={query}{&page,per_page,sort,order}",  "commit_search_url": "https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}",  ...}

用户只要记住一个URL,就可以发现其他URL。

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

你可能感兴趣的文章
大家技术探讨
查看>>
使用Myeclipse自带的xFire来实现WebService
查看>>
《UNIX环境高级编程》apue.h 头文件的问题
查看>>
系统分析师证书求挂靠,请联系qq 369681392
查看>>
ubuntu中root与user相互切换
查看>>
(转载)Http 请求处理流程
查看>>
GetVersion和GetVersionEx
查看>>
软工实践第一次作业
查看>>
php采集利器snoopy应用技巧
查看>>
我的友情链接
查看>>
安装虚拟机shell脚本
查看>>
去除数组中除第一个负数的所有负数
查看>>
哪些因素导致Python运行效率低?python入门编程
查看>>
[Python]第一个爬虫练习
查看>>
提高Python代码效率的方法
查看>>
zabbix使用msmtp&&mutt搭建邮件告警服务
查看>>
USB抓包工具--Bus Hound的使用方法详解
查看>>
location of android sdk has not been setup in the preference
查看>>
Centos7 二进制安装mysql5.7
查看>>
Centos7之Nginx的两种工作模式
查看>>