RESTful API是什么?怎么使用?RESTful API的使用场景

RESTful是一种设计模式,或者说是一种设计规范,它并没有太多强制性的要求之类的,实际上它有的只是几个原则,当一个应用满足这些原则的时候,可以认为它是RESTful的。

这些规范包括:

  • 模型表示(Representations)
  • 消息(Messages)
  • URIs
  • 一致接口(Uniform interface)
  • 无状态(Stateless)
  • 资源之间的链接(Links between resources)
  • 缓存(Caching)

简单来时restful就是:URL定位资源,用HTTP动词(GET,POST,PUT,DELETE)描述操作。

     Resource:资源,即数据。
     Representational:某种表现形式,比如用JSON,XML,JPEG等;
     State Transfer:状态变化。通过HTTP动词实现。

 使用它的好处就是:

1.通过浏览器来发送请求的时候,只能使用POST和GET。这个限制仅在RESTful服务的客户端为浏览器的时候才存在,当客户端其他情况,而仅使用HTTP来通信的时候就没有这种限制了。这样做的好处就是资源和行为分离。

2.REST的核心是资源,并且资源是用统一资源定位符URL来标识的。概念上来讲,资源和他的状态(提供给客户的格式)是分开的。REST不做任何格式上的要求,但是一般包含XML和JSON。HTTP中的键值对这个题主应该讲的是HTTP报头中的值和属性吧,这个在RESTful中也是可以支持的。


3.它可以给自己开发的应用,也可以给第三方用,其他有很多开放的API服务他们都是使用RESTful规范的。如果是在自己的应用中使用,这样的情况题主可能就无法通过表面现象来识别了,因为他作为一种通信方式被应用隐藏了。

4.取东西就要GET(GET就是安全的,不会修改服务资源),新增就要POST(POST就是不安全的),修改就要PUT(PUT就要幂等),删除就是DELETE(DELETE就要幂等)....

5.用 PHP 实现 RESTful 风格的 API,最重要的还是:路由的实现、HTTP 请求(request)的解析、HTTP (response)响应的良好封装和JSON 格式的良好支持;采用的PHP框架主要有Phalcon、Laravel、YII 等等 

RESTful API它主要用来获取一些资源例如一下代码:

GET:http://www.xxx.com/students/1

 GET:http://www.xxx.com/source/1 它的作用就是获取指定ID为1的学生资源。当然也可以不使用id来获取例如:

GET:http://www.xxx.com/students

GET:http://www.xxx.com/students 它的作用就是获取这个学生表的全部资源。

RESTful API还有其他一些规范。1:应该将API的版本号放入URL。GET:http://www.xxx.com/v1/students/1。或者将版本号放在HTTP头信息中。我个人觉得要不要版本号取决于自己开发团队的习惯和业务的需要,不是强制的。

2:URL中只能有名词而不能有动词,操作的表达是使用HTTP的动词GET,POST,PUT,DELETEL。URL只标识资源的地址,既然是资源那就是名词了。

3:如果记录数量很多,服务器不可能都将它们返回给用户。API应该提供参数,过滤返回结果。?limit=10:指定返回记录的数量、?page=2&per_page=100:指定第几页,以及每页的记录数。
 

你可能感兴趣的:(接口,RESTful,API)