资讯专栏INFORMATION COLUMN

RESTful API的理解

willin / 371人阅读

摘要:它的理论比较抽象不太具体,理解它主要在于理解这些概念资源表现层状态转换。基于原则设计的,一般称为,需要遵守以下这些原则。返回结果,结果应该包括多种情况,异常错误信息正确结果目前而言最好使用格式传输数据。参考的理解,阮一峰

RESTful API

目前的异步加载横行的时候,异步请求已经遍地都是,而规定请求接口的时候,如果不能有很好的风格的话,很多时候会让开发者误解,一个好的API接口 设计需要注意以下:

参数职责单一

意图清晰,便于开发者调用

易于访问者输入

看是但是真的设计的时候经常会设计出不规范 的接口,

REST原则

REST 即Representational State Transfer的缩写。它的理论比较抽象不太具体,理解它主要在于理解这些概念:资源、表现层、状态转换。
基于REST原则设计的API,一般称为 RESTFul API,需要遵守以下这些原则。

URL描述的是一个特定资源。因此描述需要名词,不能出现动词。因为动词描述的不再是资源本身,而是行为

利用HTTP请求的动词表示对于资源操作的行为

同时,对于URL的设计一般还有约定俗成的以下补充。

对于资源的描述的名词应该是层级嵌套的方式,比如 /company/department/projects。通过这种对于信息层级描述的方式,更利于实体的抽象,以及增加客户端与服务器端开发人员对于整个系统模块认知的一致性

路径终点的命名考虑用复数形式,比如 /books。一般一个URL路径表示的资源会映射为数据库一系列表的记录的集合,因此使用复数更直观

实践设计

实际设计restful api时的注意点包括以下:

尽量使用https协议

如果接口是公用且会被扩展时,应该考虑放在专有域名下,https://api.baidu.com

由于api会在业务中不断地迭代,所以最好是带上版本,https://api.baidu.com/v2/

最后接口路径应该尽量使用集合,也就是复数形式,https://api.baidu.com/v2/books

操作类接口应该注意使用对应的动词来操作

GET /zoos:列出所有动物园
POST /zoos:新建一个动物园
GET /zoos/ID:获取某个指定动物园的信息
PUT /zoos/ID:更新某个指定动物园的信息(提供该动物园的全部信息)
PATCH /zoos/ID:更新某个指定动物园的信息(提供该动物园的部分信息)
DELETE /zoos/ID:删除某个动物园
GET /zoos/ID/animals:列出某个指定动物园的所有动物
DELETE /zoos/ID/animals/ID:删除某个指定动物园的指定动物

参数,使用参数来进行筛选,?page=2&per_page=100:指定第几页,以及每页的记录数。

返回结果,结果应该包括多种情况,异常、错误信息、正确结果{status:"ok",massage:"ok",data:{data:1}}

目前而言最好使用JSON格式传输数据。

参考:efe的restful理解,阮一峰restful api

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/89288.html

相关文章

  • 理解 RESTful

    摘要:表形容词,意为的具有的。指的是一组架构约束条件和原则。协议要优于协议。的操作方法在中有各自的语义,理解它们的语义至为重要。返回结果对于不同操作方法和操作对象集合或个体,服务器返回的结果应该符合以下规范。附录该文主要参考理解架构设计指南 前言 近十年,前端高速发展,整个互联网应用经历了从轻客户端到重客户端的变化,随着前端规模越来越大,交互越来越复杂,前后端分离的设计开始流行。 移动互联网...

    MkkHou 评论0 收藏0
  • 理解 RESTful

    摘要:表形容词,意为的具有的。指的是一组架构约束条件和原则。协议要优于协议。的操作方法在中有各自的语义,理解它们的语义至为重要。返回结果对于不同操作方法和操作对象集合或个体,服务器返回的结果应该符合以下规范。附录该文主要参考理解架构设计指南 前言 近十年,前端高速发展,整个互联网应用经历了从轻客户端到重客户端的变化,随着前端规模越来越大,交互越来越复杂,前后端分离的设计开始流行。 移动互联网...

    Drummor 评论0 收藏0
  • PHP / Laravel API 开发推荐阅读清单

    showImg(https://segmentfault.com/img/bV6aHV?w=1280&h=800); 社区优秀文章 Laravel 5.5+passport 放弃 dingo 开发 API 实战,让 API 开发更省心 - 自造车轮。 API 文档神器 Swagger 介绍及在 PHP 项目中使用 - API 文档撰写方案 推荐 Laravel API 项目必须使用的 8 个...

    shmily 评论0 收藏0
  • RESTful实践(具体应用)思考

    摘要:其他交互一般会遵循一些数据结构协议或者状态值,比如不同的操作结果对应不同的状态值,且出错会返回指定的错误信息方便前端进行提示等。 RESTful这种架构已经具有很长的时间和历程了,但似乎最近restful这个词出现的频率特别高,目前不是很清楚是因为我自个儿现在是以restful风格写程序产生的孕妇效应,还是单页面程序开发的流行造成的。 其实一开始我也是不想写这篇文章的,因为网络上与re...

    myshell 评论0 收藏0
  • 关于RESTful API 设计总结

    摘要:互联网通信协议协议,是一个无状态协议。具体来说,就是协议里面,四个表示操作方式的动词。版本号的版本号和客户端的版本号是毫无关系的,不要让将它们用于提交应用市场的版本号传递到服务器,而是提供类似于之类的版本号。版本号拼接在中。 为什么要用 RESTful RESTful 给我的最大感觉就是规范、易懂和优雅,一个结构清晰、易于理解的 API 完全可以省去许多无意义的沟通和文档。并且 RES...

    andong777 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<