RESTful API 设计规范

一个架构符合REST(REpresentational State Transfer)原则,就称它为RESTful架构。

资源 (Resources)

URI (Uniform Resource Identifiers) 统一资源标示符

URI = scheme "://" authority "/" path [ "?" query ] [ "#" fragment ]

URI规范:

  • URI不包含动词,使用名词复数。
  • URI不使用大写。
  • URI层级不要太深。

URL(Uniform Resource Locator) 统一资源定位符(URI的实现)

对于REST API来说一个资源对应一个唯一的URI(URL)

表现(Representation)

HTTP请求的头信息中,用Accept和Content-Type标示。

状态转化(State Transfer)

  • GET:获取资源
    GET /zoos
    GET /zoos/1
    GET /zoos/1/employees
    GET /zoos/1/employeessortby=name&order=asc

  • POST:新建资源(也可以更新资源)
    POST /animals 新增动物
    POST /zoos/1/employees 新增动物园1雇员

  • PUT:更新单个资源 全量更新
    PUT /animals/1
    PUT /zoos/1

  • DELETE:删除资源
    DELETE /zoos/1/animals //删除id为1的动物园内的所有动物

常见异常返回码

  • 400 bad request 常用在参数校验
  • 401 unauthorized 未经验证的用户,常见于未登录。如果经过验证后依然没权限,应该 403(即 authentication 和 authorization 的区别)。
  • 403 forbidden 无权限
  • 404 not found 资源不存在
  • 500 internal server error 代码逻辑错误导致,比如数据库连接失败、空指针异常、除0错误

异步任务

由于互联网通信 高延时(high latency)、高并发等特点 异步任务派上大用场。

  1. 先返回任务创建成功
  2. 客户端轮询任务状态

规范是提高效率的利器

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设...
    小白frankie阅读 3,180评论 0 1
  • 一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式。”但是在要求详细讲述它所提出的各个约束,以及如...
    时待吾阅读 8,845评论 0 19
  • API定义规范 本规范设计基于如下使用场景: 请求频率不是非常高:如果产品的使用周期内请求频率非常高,建议使用双通...
    有涯逐无涯阅读 7,846评论 0 6
  • 简介 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监...
    guo的学习笔记阅读 6,835评论 0 1
  • 父母教练分享内容包括但不限于: 本周目标完成情况? 学习:学会玉米娃、6-10 生活:坚持早起早睡,睡前清单和清晨...
    caoxixi阅读 1,526评论 0 0

友情链接更多精彩内容