RESTful API - 介绍

目录

  • RESTful API 介绍

    • RESTful介绍
    • RESTful API设计指南
      • API与用户的通信协议
      • 域名
      • 版本(Versioning)
      • 路径(Endpoint)
      • 浏览器请求方式(method)
      • 过滤信息(Filtering)
      • 状态码
      • 错误处理(Error handling)
      • 返回结果
      • Hypermedia API
      • 其他

RESTful API 介绍

RESTful介绍

REST是Representational StateTransfer的简称,中文翻译为"表征状态转移"或"表现层状态转化",本身与技术无关, 其代表的是一种软件架构风格,统一的架构开发风格,会减少开发者之间不少障碍.

RESTful API设计指南

API与用户的通信协议

[推荐阅读>>][2]
[2]: http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html

域名

API部署在专用域名之下

https://api.example.com

API很简单不会有进一步扩展的时候可以放在主域名下

https://example.org/aip/

版本(Versioning)

  1. API版本号放入到URl

    https://api.example.com/v1/

  2. API版本HTTP头信息中

路径(Endpoint)

  1. 只能有名词
  2. 与数据库的表格名对应
  3. 名词使用负数

    https://api.example.com/v1/zoos
    https://api.example.com/v1/animals
    https://api.example.com/v1/employees

浏览器请求方式(method)

GET: 从资源览器取出资源(一项或多项)

POST: 在浏览器新建一个资源

PUT: 在服务器更新资源(客户端提供改变后的完整资源)

PATCH: 在服务器更新资源(客户端提供改变的属性)

DELETE: 从服务器删除资源

过滤信息(Filtering)

通过在url上传参的形式传递搜索条件

https://api.example.com/v1/zoos?limit=10:指定返回记录的数量

https://api.example.com/v1/zoos?offset=10:指定返回记录的开始位置

https://api.example.com/v1/zoos?page=2&per_page=100:指定第几页,以及每页的记录数

https://api.example.com/v1/zoos?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序

https://api.example.com/v1/zoos?animal_type_id=1:指定筛选条件

状态码

1xx:表示信息类
2xx:成功类
3xx:重定向
4xx:客户端错误
5xx:内部服务器错误

[状态码大全>>][2]
[2]: https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

错误处理(Error handling)

状态码是4xx时,返回错误信息,error当做key

{
error: "Invalid API key"
}

返回结果

针对不同操作, 服务器向用户返回的结果应该符合以下规范

GET /collection:返回资源对象的列表(数组)
GET /collection/resource:返回单个资源对象
POST /collection:返回新生成的资源对象
PUT /collection/resource:返回完整的资源对象
PATCH /collection/resource:返回完整的资源对象
DELETE /collection/resource:返回一个空文档

Hypermedia API

RESTful API最好做到Hypermedia,即返回结果中提供链接,连向其他API方法,使得用户不查文档,也知道下一步应该做什么。

{"link": {
  "rel":   "collection https://www.example.com/zoos",
  "href":  "https://api.example.com/zoos",
  "title": "List of zoos",
  "type":  "application/vnd.yourformat+json"
}}

其他

  1. API的身份认证应该使用[OAuth 2.0框架>>][2]
    [2]: http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html
  2. 服务器返回的数据格式, 应该尽量使用JSON, 避免使用XML.

原文地址:https://www.cnblogs.com/konghui/p/10351903.html

时间: 2024-08-26 22:32:18

RESTful API - 介绍的相关文章

Restful api介绍

网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机.平板.桌面电脑.其他专用设备......). 因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信.这导致API构架的流行,甚至出现"API First"的设计思想.RESTful API是目前比较成熟的一套互联网应用程序的API设计理论. 一.协议 API与用户的通信协议,总是使用HTTPs协议. 二.域名 应该尽量将API部署在专用域名之下. https://api.example.com 如

关于RestFul API 介绍与实践

之前演示的PPT,直接看图... ?参考链接: ?RESTful API 设计最佳实践 ?RESTful API 设计指南 ?SOAPwebserivce和RESTfulwebservice对比及区别

OpenStack Restful API框架介绍

1  pecan框架介绍 1.1  什么是pecan pecan是一个轻量级的python web框架,最主要的特点是提供了简单的配置即可创建一个wsgi对象并提供了基于对象的路由方式. 主要提供的功能点: (1)基于对象的路由分发 (2)支持restful接口方式 (3)可拓展的安全框架 (4)可拓展的模板语言支持 (5)可拓展的json支持 (6)简单的python配置 1.2  安装部署 为了不影响原有环境我们使用virtualenv工具创建一个隔离的python环境来做实验 $ virt

利用 Django REST framework 编写 RESTful API

利用 Django REST framework 编写 RESTful API Updateat 2015/12/3: 增加 filter 最近在玩 Django,不得不说 rest_framework 真乃一大神器,可以轻易的甚至自动化的搞定很多事情,比如: 自动生成符合 RESTful 规范的 API 支持 OPTION.HEAD.POST.GET.PATCH.PUT.DELETE 根据 Content-Type 来动态的返回数据类型(如 text.json) 生成 browserable

flask开发restful api

在此之前,向大家说明的是,我们整个框架用的是flask + sqlalchemy + redis.如果没有开发过web,还是先去学习一下,这边只是介绍如果从开发web转换到开发移动端.如果flask还不是很熟悉,我建议先到这个网站简单学习一下,非常非常简单.http://dormousehole.readthedocs.org/en/latest/ 一直想写一些特别的东西,能让大家学习讨论的东西.但目前网上的很多博客,老么就按照官方文档照本宣读,要么直接搬代码,什么都不说明.我写这个系列的博客,

[CI] 使用CodeIgniter框架搭建RESTful API服务

在2011年8月的时候,我写了一篇博客<使用CodeIgniter框架搭建RESTful API服务>,介绍了RESTful的设计概念,以及使用CodeIgniter框架实现RESTful API的方法.转眼两年过去了,REST在这两年里有了很大的改进.我对于前一篇博客中的某些方面不是很满意,所以希望能利用这次机会写一个更加完善的版本.我的项目基于Phil Sturgeon的CodeIgniter REST Server,遵循他自己的DBAD协议.Phil的这个项目很棒,干净利落,简单实用,并

3.Spring Boot中使用Swagger2构建强大的RESTful API文档

原文:http://www.jianshu.com/p/8033ef83a8ed 由于Spring Boot能够快速开发.便捷部署等特性,相信有很大一部分Spring Boot的用户会用来构建RESTful API.而我们构建RESTful API的目的通常都是由于多终端的原因,这些终端会共用很多底层业务逻辑,因此我们会抽象出这样一层来同时服务于多个移动端或者Web前端. 这样一来,我们的RESTful API就有可能要面对多个开发人员或多个开发团队:IOS开发.Android开发或是Web开发

RESTful API 设计指南(转)

网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机.平板.桌面电脑.其他专用设备......). 因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信.这导致API构架的流行,甚至出现"API First"的设计思想.RESTful API是目前比较成熟的一套互联网应用程序的API设计理论.我以前写过一篇<理解RESTful架构>,探讨如何理解这个概念. 今天,我将介绍RESTful API的设计细节,探讨如何设计一套合理.好用的API

RESTful API 设计指南

RESTful API 设计指南 本人来源于:http://www.ruanyifeng.com/blog/2014/05/restful_api.html 作者: 阮一峰 日期: 2014年5月22日 网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机.平板.桌面电脑.其他专用设备......). 因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信.这导致API构架的流行,甚至出现"API First"的设计思想.RESTful API是目前比