关于Restful API 的设计

    Restful API的流行,很大程度上被当前的移动互联网所影响,在10年前,那个时候的网络应用程序,在跨系统的时候,很多时候采用的是WebService来实现,在当下,Restful的设计已经比交深入人心!特别是你的系统需要对外提供数据或者一些服务的时候,这里的对外,可以是 手机端(比如APP),也可以是PAD,桌面程序,也可以是网络上的一台需要服务的服务器等等 ,这个时候就可以采用Restful 的设计

    通常Resutful API 一般走HTTP 协议,为了更安全,我们会加上SSL,也就是 HTTPS ,比如

写道
https://www.resutful.com/api/names     or     http://www.resutful.com/api/names

    目前我们的写法是讲API作为我们系统功能的一部分,这种做法没有和 系统剥离,如果条件允许的话,尽量做到API  的域名独立

  

写道
http://api.restful.com/v1

   这里 有一个版本的参数,其实在设计API的实现,很多时候需要兼容底下的版本,所以需要标明版本号

写道
http://api.restful.com/v1/lings

    一个对外的地址通常代表一种资源,一般用名词复数。当其他人调用我们的API的时候,我们内部会有相应的动作,这些动作,主要是HTTP协议支持的一些动作 ,主要有下面几个

  • GET(SELECT):从服务器取出资源(一项或多项)。
  • POST(CREATE):在服务器新建一个资源。
  • PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
  • PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
  • DELETE(DELETE):从服务器删除资源。

    一般在动作后面需要参数,比如ID这样的:

写道
http://api.restful.com/v1/lings/delete?id=1

    Server动作执行完以后,我们需要返回结果,当然了,HTTP协议的状态码表示  请求的结果,这个还是要熟悉的,这个浏览器一般都能够监控渠道这个值 一些常用的状态码:

  • 200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。
  • 201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。
  • 202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务)
  • 204 NO CONTENT - [DELETE]:用户删除数据成功。
  • 400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。
  • 401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。
  • 403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。
  • 404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。
  • 406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。
  • 410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。
  • 422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。
  • 500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功

     Restful的API,一般流行返回JSON对象,客户端也比交方便解析,尽量不用返回XML,这样比交麻烦 ,除非不得已为之!

  

   

   

猜你喜欢

转载自chenhua-1984.iteye.com/blog/2219176