php服务端接口实现流程,PHP开发的简单的api接口管理系统源码

  php服务端接口实现流程,PHP开发的简单的api接口管理系统源码

  下面简单介绍一下PHP服务器端API(接口开发)的原理和实例,有很好的参考价值。希望对你有帮助。

  相信大家都做过PHP请求API接口获取数据,比如淘宝API、微信公众平台、天气查询、快递查询等。有的需要参照接口文档根据签名算法构造sign,或者设置token,然后通过curl发送带参数的POST请求得到返回的数据,一般是json或者xml格式。

  但是现在情况反过来了。我们需要开发PHP服务器的API接口,就是当别人请求我们的时候,我们验证请求的合法性,查询数据返回。

  这种情况其实是用在手机APP开发上的。手机app应用往往需要请求PHP接口来获取数据,但这种请求一般是无法验证的。根据不同的函数请求不同的URL,通常在get模式下通过传递参数直接获取数据。

  本文简单谈谈服务器端验证请求合法性的方法和参数接收的方式。

  简单的get请求比如http://www.demo.com/api/get_cat? Id=2,请求这个URL会返回一些数据,无论是谁用什么编程语言请求都可以得到数据。

  那么在需要验证合法性的时候,显然是不可以这样做的。因此,需要一个密钥。这时候往往是POST请求url。

  例如,在传递的值为98888的参数中有一个签名符号。当然,生成一个标志的方法有很多种,不可能这么简单。这里只是随便写的,所以服务器收到一个98888的标志。如果我们认同9888是合法的,那么判断此时的标志是否是9888,就可以验证这是一个合法的请求。

  但是这么简单,一下子就破解了,设置这个标志毫无意义。因此,应该有一个生成符号的规则。发出请求时,根据这个规则生成一个sign参数,服务器收到请求时,也根据这个规则生成sign。如果生成的标志一致,则表明这是一个合法的请求。每个请求都将由sign验证。

  还有一种验证叫token,第一次请求时验证令牌,在一定时间内不需要再次验证。这分为两步。第一步是请求获取令牌的接口获取令牌,第二步是请求特定接口的功能。您需要携带令牌来传递参数。第一次请求令牌时,服务器先存储令牌,然后返回令牌,所以可以通过判断传递的令牌是否存在来验证后面的请求。

  许多界面开发使用这两种方法来确保隐私和安全。

  还有一点就是PHP的CURL模块经常用来发送POST请求,比如curl _ setopt ($ ch,curl opt _ POSTfields,$post_string)。这里,$ post _ string是传递PHP数组还是json格式的好方法?

  如果是传递PHP数组,我这边直接$ _ post [xx]获取参数。如果是传递json格式,我这边好像是用file _ get _ contents (php://input , r )获取传递的json数据,然后解析json得到参数。

  什么情况下用第二种?

  这个已经在网上问过了,看看你怎么回答:

  对于PHP来说,JSON和array有时候真的只是一行代码的区别。如果是我写,可能会直接重用第一个。

  我认为如果你希望你的代码简洁,你可以使用第二个。我记得微信的php sdk好像也差不多,是第二个(当然是xml格式的)。

  如果对方用面向对象直接序列化的json,用json会让他的代码更简洁。

  第一种方法是传递form Form POST协议,PHP会把PHP数组改成HTTP form的格式,跨语言通用。但是,这并不是主流的API协议,而更像是模拟提交形式。

  绝大多数API协议将使用JSON POST,

  第二种方法是将JSON数据放在HTTP主体中。它也是跨语言的,但作为API更友好。

  第一种方法,直接PHP curl,如果数据内容处理不好,数组值里上传了@/xxx/xxx之类的东西,curl会把服务器上的本地文件发出去,要注意防范。

  X-www-form-urlencoded是一个RFC标准。没有什么不兼容的。它不仅是跨语言的,也是跨时空的。JSON是近几年发明的。不是标准,只是用起来方便。

  以上关于PHP服务器端API原理及实例的讲解(接口开发)都是边肖分享的内容。

php服务端接口实现流程,PHP开发的简单的api接口管理系统源码