1、协议

  API与用户的通信都是通过HTTPS协议进行的

2、域名

  应尽量将API部署在专有域名下:https://api.example.com

  如果确定API很简单,不会有什么扩展,则可以放在主域名下:https://example.org/api/

3、版本:

  应将API的版本号写在URL里

4、路径:  

  URL的具体路径应是用名词,不应出现动词

5、HTTP的请求方法(括号里是对应的SQL命令):

  常用:GET(SELECT),POST(CREATE),PUT(UPDATE),PATCH(UPDATE),DELETE(DELETE),

      PUT与PATCH的区别是一个前者整体改变,后者改变局部

  不常用的两个:HEAD(获取资源的元数据),OPTIONS(获取信息,关于资源的哪些属性是客户端可以改变的)

6、过滤信息:

  API需要提供过滤参数,用以过滤返回结果

7、状态码:

  服务器需要有向用户返回的状态码和对应的提示信息

8、错误处理:

  如果出现40X错误,应该做提示信息的处理

9、返回结果:

  正对不同操作,服务器返回的结果要符合以下规范:

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

10、Hypermedia API:

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

restful十项规范的更多相关文章

  1. RESTful API 编写规范

    RESTful API 编写规范 在一个RESTful系统里,客户端向服务端发起索取资源的操作只能通过HTTP协议语义来进行交互.最常用的HTTP协议语义有以下5个: GET GET:发送一条或者多条 ...

  2. NLP--十项沟通前的思想准备

    如何达到有效沟通?sino NLP课程给我们十项针对沟通前的思想准备,可让我们了解怎样做到效果卓越的沟通: 1.建立和谐气氛. 这是有效沟通的前提条件,只有首先建立一个和谐的气氛,双方才能彼此敞开心扉 ...

  3. SQL Server 2014 SP2发布下载:数十项更新修复

    微软发布了数据库工具SQL Server 2014 SP2服务包下载,本次更新集合了数十项更新修复,涉及安全和功能性补丁,使用SQL Server 2014的用户应该及时安装该服务包. 文件内容 版本 ...

  4. Android开发的十项注意

    随着移动平台的发展及其应用的不断改善,质量成为决定成败的关键.用户要求他们安装的应用响应快.性能好,如果某个应用不能提供卓越的功能和稳定的用户体验,那注定会被很快卸载: 尽管现在Android智能手机 ...

  5. 三十项调整助力 Ubuntu 13.04 更上一层楼

    在Ubuntu 13.04 Raring Ringtail安装完成之后,我们还有三十项调整需要进行. 1.Ubuntu 13.04 Raring Ringtail安装完毕后,我又进行了一系列工作 大家 ...

  6. 部署Win Server 2012十项注意

    博文来自 http://server.zol.com.cn/351/3511746.html Windows Server 2012是微软公司在2012年推出的面向中小企业应用一款全新的服务器操作系统 ...

  7. 地图SDK全面升级 – 数十项新功能及优化等你来体验

    腾讯位置服务地图SDK是一套提供多种地理位置服务的应用程序接口.通过调用该接口,开发者可以在自己的应用中加入地图相关的功能(如地图展示.标注.绘制图形等),轻松访问腾讯地图服务和数据,构建功能丰富.交 ...

  8. Java架构师-十项全能学习笔记(1)

    Java架构师-十项全能学习笔记(1) @Configuration @EnableStateMachine public class OrderStateMachineConfig extends ...

  9. RESTful接口开发规范

    最近在研究restful,公司开发要使用,所以自己就去网上找了好些资料,并整理了一套公司开发的接口规范.当然,我也只是刚刚入坑.还不是很全面.但是这就是一个过程.一点点,总会好起来的.以下是就是RES ...

随机推荐

  1. 比利牛斯獒犬 flask web

    1. 使用 session.get('name') 直接从会话中读取 name 参数的值.和普通的字典一样,这里使用 get() 获取字典中键对应的值以避免未找到键的异常情况,因为对于不存在的键, g ...

  2. cocos2d-x2.2+win7+vs2010+python安装配置

    个人网站http://www.ravedonut.com/ 1.安装vs2010 2.解压cocos2d-x,打开cocos2d-win32.vc2012.sln,编译,然后运行Hellocpp成功即 ...

  3. c++友元函数友元类

    友元函数和友元类的需要: 类具有封装和信息隐藏的特性.只有类的成员函数才能访问类的私有成员,程序中的其他函数是无法访问私有成员的.非成员函数可以访问类中的公有成员,但是如果将数据成员都定义为公有的,这 ...

  4. Ubuntu安装vnc+gnome的xstartup配置

    Log 1 安装vncserver并且在xstartup配置gnome 背景:学习Ruby,想在ubuntu下使用rubymine 时间:2014-3-10 环境:Ubuntu 记录:Roy 其实这个 ...

  5. Linux whereis 搜索命令位置

    在学习 兄弟连 linux教学视频 的时候,我将所学的 linux 命令记录在我的博客中,方便自己查阅. 文件搜索命令: whereis 基础的命令 命令名称:whereis 命令的所在路径:/usr ...

  6. Linux which 查找命令

    在学习 兄弟连 linux教学视频 的时候,我将所学的 linux 命令记录在我的博客中,方便自己查阅. 权限管理命令: which 基础的命令 命令名称:which 命令的所在路径:/usr/bin ...

  7. (3)ASP.NET Core 服务生命周期

    1.前言 在ConfigureServices方法中的容器注册每个应用程序的服务,Asp.Core都可以为每个应用程序提供三种服务生命周期:●Transient(暂时):每次请求都会创建一个新的实例. ...

  8. 51nod - 1188 - 最大公约数之和 V2 - 数论

    https://www.51nod.com/Challenge/Problem.html#!#problemId=1188 求\(\sum\limits_{i=1}^{n-1}\sum\limits_ ...

  9. CodeForces——Game with string(STL stack栈)

    Two people are playing a game with a string ss, consisting of lowercase latin letters. On a player's ...

  10. 怎么在const成员函数里面调用非const成员函数?

    举个例子: 定义了一个类的const实例,怎么让他也能调用非能调用非const成员函数class foo{public:void test1() {cout << "I am n ...