只知道遵规循矩的程序员是假程序员,任何技术都是不断发明创造改进的。html
如何设计处优秀的Restful API? 盲目跟风,设计糟糕的Resful API = 浪费时间 ! java
不啰嗦,直接进入技术主题:程序员
Resource (资源) :就是数据,是对象,或者说物质restful
operation(操做):这个概念是我我的抽出来的,不少人学Restful是没有这个概念,你们只知道资源,我我的认为有资源就有对资源的操做,例如http的方法 : GET、POST、DELETE、PUTpost
Collections(集合):就是一组资源url
URL(统一资源定位符):就是资源定位符,由于是通用,因此叫统一资源定位符。说白了能够理解为网址,就是资源的位置,好比一个图片地址、一个文件的地址、一部电影的地址spa
名词:对资源的表达、形容设计
动词:对资源的操做,其中基本的操做方法Http方法 (GET、POST、DELETE、PUT)已经包含,因此URL的动词 不多 ,能抽象出http的方法就尽可能,不能抽象则在URL中表达(可参照关于restful开发的疑惑)rest
所有用小写htm
JSON的特性在此不详细说明
一个状态码和一个消息就够了
状态码使用HTTP状态码,消息根据业务或者系统状况给合适的消息,不需再设计个什么 success 字段 为true 或 false,有状态码了这是画蛇添足。
/** * 统一码 * * @author 尘无尘 * */ public interface UnifiedCode { /** * 成功 */ static final int SUCCESS = 200; /** * 参数错误,虽然请求成功,可是请求参数错误 致使 没法调用接口或者没法正常执行接口 */ static final int PARAM_ERROR = 400; /** * 系统错误,虽然请求成功,可是因为系统内部问题致使没法正常处理请求 */ static final int SYS_ERROR = 500; }