博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何更好地设计RESTful API?
阅读量:6610 次
发布时间:2019-06-24

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

hot3.png

如何更好地设计RESTful API?

目前对于大多数项目来说, 前后端分离,接口调用, RESTful API使用越来越流行。但是如何设计更好,更容易让人理解的API还是需要下一番功夫的。

下面我将介绍如果更好地设计RESTful API。


一,使用名词而非动词

为了方便理解, 我们应该为所有的API列表使用名词。 例如


订单 GET POST PUT DELETE
/cars 获取所有的汽车列表 新建一辆汽车 批量修改 删除所有
/cars/112 获取特定的汽车 NOT ALLOWED(405) 修改特定的汽车 删除特定的汽车

不用使用如下:

/getAllCars/createNewCar/deleteAllRedCars

二,GET方法不应该修改任何的状态

如果需要修改相关数据项的状态, 用 PUT, POST或者DELETE而非GET

例如: 不要使用

GET /users/113?activate or GET /users/113/activate

三, 使用复数名词

不要把单数和复数名字搞混淆了, 一般来讲, 所有的资源都使用复数, 例如:

/cars 而非 /car/users 而非 /user/products 而非 /product/settings 而非 /setting

四,使用子资源

如果两个方法中间有必然的关系, 这个时候应该使用子资源的方式, 例如:

GET /cars/711/drivers/ 找到所有开711这个车的司机GET /cars/711/drivers/4 找到车711,id为4的司机

五,设置HTTP headers

服务端和客服端都应该指定HTTP header, 像Content-Type, Accept


六,为客服端提供过滤,排序,分页

6.1 过滤(搜索?)

当我们需要过滤(搜索)的时候应该放在URL参数上, 而不是放在POST方法的data内容里面

GET /cars?color=red 返回车身颜色为红色的所有车辆

6.2 排序

6.3 分页

未完待续

转载于:https://my.oschina.net/u/2986558/blog/787785

你可能感兴趣的文章
AJPFX简述abstract class和interface的区别
查看>>
利用剪切板JS API优化输入框的粘贴体验
查看>>
黑马程序员——内部类
查看>>
AS3 类库资源
查看>>
OA系统
查看>>
Linux ssh无密钥登录
查看>>
校园的早晨
查看>>
[学习]拆分成二维数组
查看>>
用shell脚本实现增加,删除用户,查询更改UID和GID以及统计用户数
查看>>
数组的工具类Arrays
查看>>
h5+ hbuilder ios提示语修改
查看>>
单例模式的5种实现方式,以及在多线程环境下5种创建单例模式的效率
查看>>
PHP 文件操作的 flock() 内置函数用法
查看>>
HTTP 报文 之 HTTP 方法
查看>>
Linux系统启动过程分析
查看>>
有随机指针的链表复制
查看>>
虚拟机桥接模式基于win10
查看>>
SSH+jquery+ajax奇葩整合
查看>>
Apache配置虚拟主机
查看>>
Yii使用CJuiAccordion面板
查看>>