接口开发

一、接口开发概述
(一)接口分类
1.使用或者调用第三方开发的接口,如百度地图API、短信接口等
2.自己编写接口提供给第三方使用
(二)请求接口流程
1.编写脚本文件(php程序),按接口要求构造请求需要的参数以及请求方式(get、post等),调用接口API发送请求
2.服务器API接口收到请求后,服务器验证参数是否合法,如果不合法则直接报错,如果请求合法,则从数据库中读取数据、处理后返回给客户端(json格式或xml格式)
3.客户端接收接口返回的数据,根据自己的业务逻辑进行处理
(三)接口编写流程
1.规定外部请求接口的方式(get、post)
2.规则参数的数量、类型
3.规定加密的方式、规则
4.验证外部请求的签名以及参数合法性
5.规则错误状态提示码
(四)接口验证原理
接口编写完成后,客户端通过链接(url)获取接口数据,服务端返回xml或json格式数据,在这个过程中,服务端并不知道请求的来源是什么,有可能是未经授权的人非法调用接口,获取数据,因此需要使用安全验证。
1.原理
在这里插入图片描述
从上图可知,客户端想调用接口,需要使用几个参数生成签名。
1)时间戳:当前时间;
2)随机数:随机生成的随机数;
3)口令:前后台开发时,一个双方都知道的标识,相当于暗号;
4)算法规则:商定好的运算规则,上面三个参数可以利用算法规则生成一个签名。
客户端生成签名后,当访问接口时,将时间戳、随机数、签名通过URL传递到服务端,服务端拿到时间戳、随机数后,通过相同的算法规则计算出签名,之后和客户端传递过来的签名对比,如果二者相同,则请求合法,返回数据。
2.算法规则
在这里插入图片描述

客户端 、服务端需要通过相同的算法规则计算出签名,一般的规则算法如下:
1)时间戳,随机数,口令按照首字母大小写顺序排序
2)然后拼接成字符串
3)进行sha1加密
4)转换成大写。
微信公众号的接口认证规则与上述相同。

二、编写接口
(五)接口代码
1.客户端代码
在这里插入图片描述
2.服务端代码
在这里插入图片描述
(六)请求的唯一性、时效性
为防止重复使用链接、参数请求接口,可使用时间戳判断请求是否超时(过期),使用当前时间和客户端传递过来的时间对比,如果超过指定时间,则返回相应的错误信息。
在这里插入图片描述

三、接口的优化
(一)接口的性能
1.并发量
优化数据库(SQL语句优化、索引优化、分区、分表等)、使用内存缓存数据库(redis、memcache等)、数据库集群、服务器集群等。
2.数据库安全
一个项目对应一个数据库,及时备份数据库。
3.接口响应时间
数据库优化、数据存入内存等。
4.数据格式
如果接口返回的数据只供内部使用或只给PHP程序使用,也可以考虑序列化后的字符串(serialize、unserialize)。
四、案例
开发一个基于微信的在线预约程序。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值