API
什么是API?
API(Application Programming Interface应用程序编程接口) 是应用程序和开发人员之间的接口/通道,负责一个程序和其他软件的沟通。
API本质上是一些预先定义好的函数,目的是提供应用程序以及开发人员基于某软件或硬件得以访问一组数据的能力
接口主要工作
1.数据获取:
SELECT 读 从数据库中或者缓存当中获取数据,提供给客户端 (根据自己的业务,通常做查询处理)
2.数据入库:
INSERT UPDATE DELETE 写 通过接口提交数据给服务器,服务器做入库或者更新处理
PHP 开发 API
开发 API 比开发 WEB 更简洁,但可能逻辑更为复杂,为什么这样说呢?因为 API 大多数就是数据输出,根本不用呈现页面,所以也就不存在 MVC(API 只有 M 和 C)
1、和 WEB 开发一样,首先需要一些相关的参数,这些参数,都会由客户端传过来,也许是 GET 也许是 POST,这个需要开发团队相互之间约定好,或者制定统一规范。
2、有了参数,根据应用需求,完成数据处理,例如:任务进度更新、APP内购、一局游戏结束数据提交等等
3、数据逻辑处理完之后,返回客户端所需要用到的相关数据,例如:任务状态、内购结果、玩家信息等等数据怎么返给客户端?直接输出的形式,如:JSON、XML、TEXT 等等。
4、客户端获取到你返回的数据后,在客户端本地和用户进行交互
接口开发时应该注意哪些呢?
1、效率:接口访问速度 APP有别于WEB服务,对服务器端要求是比较严格的,在移动端有限的带宽条件下,要求接口响应速度要快,所有 在开发过程中尽量选择效率高的框架,PHP建议使用YAF框架。
2、数据格式 最好使用JSON格式数据,因为JSON有较好的跨平台性
3、数据量 按需分配,APP客户端需要什么数据就返回什么数据,过多的数据量影响处理速度,最重要的是影响传输效率。
4、接口、参数命名准确 无论是接口还是参数,命名都应该有意义,让人一目了然。
5、一个页面尽可能就用一个接口 现在很多的APP页面都有广告、焦点图、文章列表等,对于这些不同格式的数据,不可能都分配一个接口,这样加大了APP请求接口数,影响响应速度。
建议服务器端尽可能处理好数据后通过一个接口返回给APP客户端。
6、善于利用缓存,不管是文件缓存还是memcache,redis缓存,尽可能减少对Mysql的调用次数。
7、接口要有可扩展性
8、接口安全, 目前一般都是在APP客户端和服务器通过约定的算法,对传递的参数值进行验证匹配。但是如果APP程序被反编译,这些约定的算法就会暴露,特别是在安卓APP中,有了算法,完全就可以通过验证模拟接口请求。
9、接口数据、状态 接口必须提供明确的数据状态信息,不管是成功的,还是失败的,都必须返回给APP客户端
10、书写清晰标准的接口文档
接口文档(可以参考百度,美团,微信等各大开放平台接口)
@温馨提示:具体代码不在此显示,如需帮助请留言