是一种互联网软件架构的设计规范、设计指南、设计风格、设计原则
    1、API Application Programming Interface 应用程序接口(接口)
    2、Rest Resource Representational State Transfer
    apache

    1. 1Resource<br /> 资源 <br /> URI:统一资源标识符。是一个字符串。用来标识互联网资源的名称<br /> URL:统一资源定位符。它是一种具体的URI<br /> 2Representational<br /> 表现层<br /> 文本 text\html\xml\json\二进制<br /> 3State Transfer<br /> 状态转化
    2. Restful API具体设计规范<br /> 1、协议<br /> HTTPS<br /> 2、域名<br /> [https://api.kaivon.com](https://api.kaivon.com)<br /> [https://wwww.kaivon.com/api/](https://wwww.kaivon.com/api/)<br /> 3、版本<br /> [https://api.kaivon.com/v1](https://api.kaivon.com/v1)<br /> 4、路径<br /> [https://api.kaivon.com/v1/blogs](https://api.kaivon.com/v1/blogs)<br /> 5、方法<br /> 1、GET 获取资源<br /> GET [https://api.kaivon.com/v1/blogs](https://api.kaivon.com/v1/blogs) 获取所有的文章<br /> GET [https://api.kaivon.com/v1/blogs/id](https://api.kaivon.com/v1/blogs/id) 获取到某一篇文章<br /> 2、POST 添加资源<br /> POST [https://api.kaivon.com/v1/blogs](https://api.kaivon.com/v1/blogs) 增加一篇文章<br /> 3、PUT 修改资源(客户端需要提供改变后的完整资源)<br /> POST [https://api.kaivon.com/v1/blogs/id](https://api.kaivon.com/v1/blogs/id) 修改某一篇文章<br /> 4、PATCH 更新资源(客户端需要提供改变的属性)<br /> PATCH [https://api.kaivon.com/v1/blogs/id](https://api.kaivon.com/v1/blogs/id) 更新某一篇文章<br /> 5、DELETE 删除资源<br /> DELETE [https://api.kaivon.com/v1/blogs/id](https://api.kaivon.com/v1/blogs/id) 删除某一篇文章<br /> 6、数据过滤<br /> 1、?limit=10 指定返回数据的数量<br /> GET [https://api.kaivon.com/v1/blogs?limit=10](https://api.kaivon.com/v1/blogs?limit=10)<br /> 2、?offset=10 指定一个偏移量<br /> GET [https://api.kaivon.com/v1/blogs?offset=10](https://api.kaivon.com/v1/blogs?offset=10)<br /> 3、?page=2&per_page=10 指定第几页,以及每页的数量<br /> GET [https://api.kaivon.com/v1/blogs?offset=10](https://api.kaivon.com/v1/blogs?offset=10)<br /> 4、?sortby=time&order=arc 指定返回结果按照哪个属性排序,以及排序的方式<br /> GET [https://api.kaivon.com/v1/blogs?sortby=time&order=arc](https://api.kaivon.com/v1/blogs?sortby=time&order=arc)<br /> 7、状态码<br /> 8、返回结果<br /> 1、GET 资源对象列表(数组),如果取的是一条数据,那返回一个对象<br /> 2、POST 返回添加后的资源对象,以及有可能会加上是否成功<br /> 3、PUT 返回修改后的资源对象,以及有可能会加上是否成功<br /> 4、PATCH 返回更新后的资源对象,以及有可能会加上是否成功<br /> 5、DELETE 返回空,以及有可能会加上是否成功<br /> 9、返回的数据格式<br /> 尽量使用JSON,避免使用XML
    3. 5、总结<br /> 1、看URL就知道要什么<br /> 2、看HTTP method就知道干什么<br /> 3、看HTTP stuts code就知道结果如何