PHP使用RESTful API

WBOY
WBOYoriginal
2016-06-06 20:34:251473parcourir

RESTful API 如何用PHP来使用
例如,我需要做1个上传图片到独立的图片服务器

如下, restful api 参考
https://github.com/alibaba/nginx-tfs/blob/master/TFS_RESTful_API.markd...
语法

POST /v1/appkey HTTP/1.1

Host: 10.0.0.1:7500

Content-Length: length

Date: date


PUT /v1/tfs/T1FOZHB4ET1RCvBVdK HTTP/1.1
Host: 10.0.0.1:7500
Content-Length: 22
Date: Fri, 30 Nov 2012 03:05:00 GMT

[data]

这种应该如何写PHP? 有没有参考?

回复内容:

RESTful API 如何用PHP来使用
例如,我需要做1个上传图片到独立的图片服务器

如下, restful api 参考
https://github.com/alibaba/nginx-tfs/blob/master/TFS_RESTful_API.markd...
语法

POST /v1/appkey HTTP/1.1

Host: 10.0.0.1:7500

Content-Length: length

Date: date


PUT /v1/tfs/T1FOZHB4ET1RCvBVdK HTTP/1.1
Host: 10.0.0.1:7500
Content-Length: 22
Date: Fri, 30 Nov 2012 03:05:00 GMT

[data]

这种应该如何写PHP? 有没有参考?

因为 RESTful API 都是基于HTTP的,也就是说,只要你有一个HTTP客户端(比如浏览器,用PHP的curl库模拟等等)就可以与API通信了。

你上面看到的都是客户端与API在基于HTTP协议进行通信时的一些HTTP头信息与数据,比如你打开谷歌浏览器的开发者工具,然后选择网络(Network)就可以看到本次通讯的所有HTTP相关信息了。

在进行API调用前,最好还是先了解一些 HTTP 和 REST 的相关知识,这个很重要。

简单的原理是这样的:既然客户端(你的应用)与 API进行通信,必须使用 HTTP协议,那么简单了。你只要向API发HTTP请求不就得了呗,那怎么发?如何发? 浏览器就行,当然方便一点是使用一些插件了(后文说)。那关键是你现在要用PHP来发HTTP请求和处理请求啊,那行,PHP提供了curl库和fsockopen,这两个都可以模拟发HTTP请求和处理返回的数据。所以用它们就可以了。

言归正传,上面API的调用,你可以使用 PHP的curl库 进行调用,这个还是比较简单的,自己再封装一把,基本就可以了。不懂看这个,适合新手 PHP之curl。

当然你也可以使用第三方的封装好的 PHP的HTTP客户端(实际上它里面还是使用了php的curl库或者fsockopen库),比如这些(来源:推荐!国外程序员整理的 PHP 资源大全):
1. Guzzle -一个全面的HTTP客户端
2. Buzz -另一个HTTP客户端
3. Requests -一个简单的HTTP库
4. HTTPFul -一个链式HTTP库

这里也有一些基于浏览器开发的一些插件,调试REST API非常方便,提供几个(chrome适用):
1. DHC (aka Dev HTTP Client) (自己最喜欢的,方便易用)
2. Postman
3. Advanced Rest Client

要是想了解REST这里 restful-api-design-references 收集了一些资料,对于API调用者,了解一下应该就可以了。

可以参考下 阮一峰之前的博文 了解一些概念化的东西

http://www.ruanyifeng.com/blog/2011/09/restful.html
http://www.ruanyifeng.com/blog/2014/05/restful_api.html​

可以多参考下github.com的api 感觉很优美

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn