首先,咱们得知道什么是restful-api,它产生的背景是什么,作用是什么,这样以便于我们更好的去学习和掌握这门知识。

什么是restful-api:

EST,即Representational State Transfer的缩写。直接翻译的意思是"表现层状态转化"。
         它是一种互联网应用程序的API设计理念 :URL定位资源,用HTTP动词(GET,POST,DELETE,DETC等)描述操作。

产生背景及作用:

近年来移动互联网的发展,前端设备层出不穷(手机、平板、桌面电脑、其他专用设备…),前端与后端开发人员在进行开发时需要进行交互等测试,那问题来了,在这个交互和测试环节我们如何达成一致了,方便测试呢?所以为了方便开发人员测试,提高开发效率,因此,必须有一种统一的机制来规范,于是RESTful诞生了,而且restful-api设计规范被大多数程序员认可,它可以通过一套统一的接口为 Web,iOS和Android提供服务。

相信大家看完上面的内容应该对restful-api有了一定的了解和认识,那么接下来具体介绍一下restful-api的设计规范。

具体设计规范:

1.应该尽量将API部署在专用域名之下

http://api.douban.com/v2/user/1000001?apikey=XXX

2.应该将API的版本号放入URL

http://api.douban.com/v2/user/1000001?apikey=XXX

3.在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。一般来说,数据库中的表都是同种记录的"集合"(collection),所以API中的名词也应该使用复数。

http://api.douban.com/v2/book/:id (获取图书信息)
http://api.douban.com/v2/movie/subject/:id (电影条目信息)
http://api.douban.com/v2/music/:id (获取音乐信息)
http://api.douban.com/v2/event/:id (获取同城活动)

4.对于资源的具体操作类型,请求方式,由HTTP动词表示。常用的HTTP动词有下面四个(对应增/删/改/查)。

GET(select):从服务器取出资源(一项或多项)。
eg. 获取图书信息 GET http://api.douban.com/v2/book/:id

POST(create):在服务器新建一个资源。
eg.用户收藏某本图书 POST http://api.douban.com/v2/book/:id/collection

PUT(update):在服务器更新资源(客户端提供改变后的完整资源)。
eg. 用户修改对某本图书的收藏PUThttp://api.douban.com/v2/book/:id/collection

DELETE(delete):从服务器删除资源。
eg. 用户删除某篇笔记 DELETE http://api.douban.com/v2/book/annotation/:id

5.如果记录数量很多,服务器不可能都将它们返回给用户。API应该提供参数,过滤返回结果

?limit=10:指定返回记录的数量
eg. 获取图书信息 GEThttp://api.douban.com/v2/book/:id?limit=10

6.服务器向用户返回的状态码和提示信息

每个状态码代表不同意思, 就像代号一样
2系 代表正常返回
4系 代表数据异常
5系 代表服务器异常

接口安全:
1.API的身份认证应该使用OAuth 2.0框架。
2.技术团队自己约定的规则

增加两个参数 time, token
time为时间戳, 用于判断接口请求是否超时
token为时间戳加密后的字符串, 加密规则只有你们技术团队自己知道

restful-api接口的设计规范介绍相关推荐

  1. RESTful API接口设计规范

    目录 一.RESTful的诞生背景 二.什么是RESTful? 三.Restful API接口设计规范 3.1.协议 3.2.路径规则|域名 3.3.版本控制 3.4.请求类型 3.5.传入参数 3. ...

  2. 无需编程,基于甲骨文oracle数据库零代码生成CRUD增删改查RESTful API接口

    无需编程,基于甲骨文oracle数据库零代码生成CRUD增删改查RESTful API接口 回顾 通过之前一篇文章 无需编程,基于PostgreSQL零代码生成CRUD增删改查RESTful API接 ...

  3. swagger php 生成api,blog/Swagger生成php restful API接口文档.md at master · lfq618/blog · GitHub...

    Swagger生成php restful API接口文档 背景 我们的restful api项目采用yaf框架, 整体结构简单, 我们只需要用swagger扫描 application目录即可. 下面 ...

  4. 无需编程,基于微软mssql数据库零代码生成CRUD增删改查RESTful API接口

    无需编程,基于微软mssql数据库零代码生成CRUD增删改查RESTful API接口 回顾 通过之前一篇文章 无需编程,基于甲骨文oracle数据库零代码生成CRUD增删改查RESTful API接 ...

  5. 整合swagger2生成Restful Api接口文档

    整合swagger2生成Restful Api接口文档 swagger Restful文档生成工具 2017-9-30 官方地址:https://swagger.io/docs/specificati ...

  6. SpringMVC Restful api接口实现

    [前言] 面向资源的 Restful 风格的 api 接口本着简洁,资源,便于扩展,便于理解等等各项优势,在如今的系统服务中越来越受欢迎. .net平台有WebAPi项目是专门用来实现Restful ...

  7. RESTful API接口基本内容

    RESTful API接口基本内容 目录 RESTful API接口基本内容 一.RESTful是什么? 1.1.基本特点 1.2.设计概念和准则 1.3.http协议 二.RESTful与SOAP ...

  8. Restful API是什么?初探Restful API,传统接口写法与Restful API接口写法区别

    Restful API是什么?初探Restful API?为什么要用Restful API?传统接口写法与Restful API接口写法区别,带着这些问题我们来具体了解下Restful API: 目录 ...

  9. Android开发规范:API接口安全设计规范

    公众号[国民程序员]回馈粉丝福利: 现金红包和送书活动火热进行中,点击参与! 我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买. 书籍详情请 ...

  10. Swagger 生成 PHP restful API 接口文档

    需求和背景 需求: 为客户端同事写接口文档的各位后端同学,已经在各种场合回忆了使用自动化文档工具前手写文档的血泪史. 我的故事却又不同,因为首先来说,我在公司是 Android 组负责人,属于上述血泪 ...

最新文章

  1. Array Networks ***官网 客户端下载地址
  2. 遗传算法对于神经网络的优生优育
  3. 【干货】如果你的推广周期是一年,怎样激活100万目标用户
  4. Session.run() Tensor.eval()
  5. maven-assembly-plugin插件打包 jar、tar.gz
  6. springboot单例模式注入对象_Spring 中经典的 9 种设计模式,打死也要记住啊!
  7. 无连接可靠传输_这些RF连接器设计原则你应该多了解一下
  8. nginx 限制某些类型的客户端的访问
  9. github上预览Demo网页最简单的方法
  10. 可以批量把Word文件转成JPG的软件工具
  11. Unity 一种更为简洁明了的环绕相机方案
  12. java程序执行时间_java记录代码运行时间
  13. 使用racoon setkey搭建IPsec环境
  14. 【自然语言处理】【可解释性】Perturbed Masking:分析和解释BERT的无参数探针
  15. 区块链对广告行业发展的影响
  16. 暗黑破坏神资源 - 紫冰整理
  17. 书论51 朱文长《续书断》
  18. 华为 H3C 配置 Portal认证 mac-trigger快速认证 Mac无感知认证 Radius认证计费 对接 外部Portal认证计费系统 案例
  19. 如何分享CSDN的博客
  20. 生信入门:序列比对之blast在线和本地使用

热门文章

  1. Java easycms 版本2.0发布
  2. ionic使用CardIO实现扫描银行卡功能(只能扫描16位以下,并且是浮雕数字)
  3. dwarf调试信息格式入门
  4. js正则表达式test()和exec()用法
  5. 原型图Mockplus:怎样使用图片裁切功能
  6. T-SQL、Jet SQL、PL-SQL
  7. 使用PIE/PIF值判断DVD刻录机的刻录品质
  8. linux 模式表达式,linux正则表达式和扩展表达式
  9. MapReduce流程(WordCount案例实现)
  10. golang类型断言及检测其是否断言成功