RestApi初识

Rest简介


  2000年,Roy Thomas Fielding在他的博士论文中首次提出软件架构设计原则Rest,即基于HTTP/1.1协议等Web规范的设计指导原则,Rest全名Representational State Transfer,翻译是”表现层状态转化”[阮一峰]。也就是一种软件设计原则。Rest体现在API设计主要在一下几点:

  • 通过URI(统一资源定位符)的来指定资源

  • 通过资源的表现形式来操作资源

  • 对资源的操作包括获取、创建、修改和删除资源,对应HTTP协议提供的GET、POST、PUT 和DELETE方法

    方法 操作
    GET 获取资源
    POST 插入资源或者更新现有的资源
    DELETE 删除资源
    PUT 插入资源或者更新现有的资源
    OPTIONS 列举允许对资源进行的操作
    HEAD 返回Response Header

  REST API不依赖于协议,但是几乎全部的REST都是基于HTTP协议的。因此,举例也就只举HTTP的例子。基于HTTP的REST API的优势:

  • 通讯本身的无状态特性会提高服务器对请求的处理能力
  • 浏览器的本身就是客户端
  • 相对于其他叠加在HTTP协议之上的机制,REST的软件依赖性更小
  • 可以利用缓存来提高性能
RestApi的设计注意事项:
  • URI不能包含动词
POST /en/transfer/zh/hello   //错误的
  • URI中的名词表示资源集合,使用复数形式
GET http://wwww.example.com/projects

RestApi设计


1.使用的协议

HTTP协议

2.可以把版本号放在URI中

http://code.aiboms.cn/api1.0/articles

3.案例:

  • GET /users:获取所有的成员
  • POST /user:添加一个成员
  • GET /uses/ID:得到user_id为ID的成员信息
  • PUT /users/ID:更新user_id为ID的成员信息
  • DELETE /users/ID:删除user_id为ID的成员
  • GET /users/developer:得到所有的开发成员

Rest具体实现

  • CI框架下demo:https://github.com/chriskacerguis/codeigniter-restserver
  • Tp5框架下demo:https://github.com/Leslin/thinkphp5-restfulapi
  • Laeavel5框架下demo:https://github.com/francescomalatesta/laravel-api-boilerplate-jwt

你可能感兴趣的:(RestApi初识)