开发php接口注意点
1.制定规范
开发前一定要定好一个规范,比如要定好数据返回的通用参数和格式。关于数据格式,用的比较多的有xml和json,我建议用json,因为json比xml的好处更多。 2.精简的返回数据
接口数据因符合需要什么返回什么的原则,比如要查询某个用户的余额和注册时间,网页里面的做法可能是select * from user where uid=1,但是接口一定要select balance,regtime from user where uid=1。因为接口返回数据是要有开销的,要流量的,能少返回数据就尽量少返回,这样可以大大的提高性能。 3.数据类型要严格
要注意数据的类型,整数类型的数据一定要转为int,因为app客户端开发的java、object-c语言对数据类型比较严格,类型不对会照成app闪退。 4.要写接口文档
一定要写好接口文档,并按照模块写,而且还要书写规范,最好的格式是:
接口请求地址;请求参数(包括参数名、类型、是否必填);测试参数举例;返回参数(参数名,并注明每个参数的含义)。
这样哪怕以后项目很大,以不会照成维护困难的问题。 5.保证代码正确性
要验证保证代码正确无误,而且生成环境中要屏蔽掉错误,避免头部有额外的输出,照成返回的json等数据解析失败而导致app闪退等。 6.要优化代码的性能
app要求响应迅速,这样才能给用户比较好的体验感。所以移动接口端在处理业务逻辑的时候,要避免不要执行太复杂的sql语句,或者含有大量的循环,能做成缓存的尽量做缓存,比如将首页的热点模块信息可以存到redis缓存中。在不考虑网速的情况下,比较理想的接口响应时间应该是200毫秒以内。 7.不要随意更改旧接口
app不像网页,app一旦发布,有人使用之后,接口就不要乱修改了。以后升级也是,修改要在保证接口原有结构之上进行额外的扩展,否则会导致调用旧版接口的app出现bug。 8. 注意接口的安全
安全高于一切,必须要保证接口的安全。电话号码等敏感信息在传输的过程中一定要加密,否则可能会被别人抓包到。拿取用户信息的接口一定要验证权限,以防止接口被恶意调用,泄密用户信息,甚至篡改信息。
开发php接口注意点的更多相关文章
- 《PHP开发APP接口》笔记
PHP开发APP接口 [TOC] 课程地址 imooc PHP开发APP接口 学习要点 APP接口简介 封装通信接口方法 核心技术 APP接口实例 服务器端 -> 数据库|缓存 -> 调用 ...
- 那些年,我们开发的接口之:QQ登录(OAuth2.0)
那些年,我们开发的接口之:QQ登录(OAuth2.0) 吴剑 2013-06-14 原创文章,转载必须注明出处:http://www.cnblogs.com/wu-jian 前言 开发这些年,做过很多 ...
- PHP开发APP接口(二)
这里将会调用前面博客的数据库连接单例.文件缓存类和开发APP接口(一) <?php // http://app.com/list.php?page-=1&pagesize=12 requ ...
- PHP开发APP接口
第1章 APP接口简介 - 课程简介 (:) - APP接口介绍 (:) - 客户端APP通信 (:) 最近学习 - 客户端APP通信格式区别 (:) - APP接口做的哪些事儿 (:) 第2章 封装 ...
- 早期MyBatis开发与接口式Mybatis开发的简介
早期MyBatis开发与接口式Mybatis开发的简介 一.早期版本的myBatis使用 导jar包 1.配置mybatis.xml的配置文件 1) ...
- 智表ZCELL产品V1.4.0开发API接口文档 与 产品功能清单
为了方便大家使用ZCELL,应网友要求,整理编写了相关文档,现与产品一起同步发布,供大家下载使用,使用过程中如有疑问,请与我QQ联系. 智表(ZCELL)V1.4.0版本 功能清单文档下载地址: 功 ...
- 基于Axis1.4的webservice接口开发(接口调用)
基于Axis1.4的webservice接口开发(接口调用) 一.webservice接口代码参考上一篇博客: http://www.cnblogs.com/zhukunqiang/p/7125668 ...
- 使用cxf开发webservice接口
项目中经常用到开发webservice接口,及调用webService接口.这里讲解如何使用cxf开发webService接口. 一.webservice介绍及理解 webservice是一种跨平台, ...
- RESTful设计原则和样例(开发前后台接口)
摘要 REST(表征性状态传输)设计风格;REST通常基于使用HTTP,URI协议和标准.使用URL标识资源,开发前后台接口.主要使用post,get方式 参考博文: http://www.cnblo ...
- django开发后台接口error 10053/10054
初学Django,开发完接口之后访问post请求的接口遇到error10053和10054,查阅很多资料没有找到具体的原因. 在这里记录下我遇到这两个报错的原因和解决方案: get请求取请求参数:su ...
随机推荐
- 恢复delete删除的数据
SELECT * FROM tablename AS OF TIMESTAMP TO_TIMESTAMP('2010-12-15 11:10:17', 'YYYY-MM-DD HH:MI:SS')
- unit Base64Unit;
unit Base64Unit; unit Base64Unit; //Download by http://www.codefans.net interface uses Classes, SysU ...
- SetOperations
无序集合,add的顺序不是存储顺序 1.add(K key, V value) 2.difference(K key, otherK[s]) :差集,返回Set 3.differenceAndStor ...
- LXC linux容器简介——在操作系统层次上为进程提供的虚拟的执行环境,限制其使用的CPU和mem等资源,底层是linux内核资源管理的cgroups子系统
1.LXC是什么? LXC是Linux containers的简称,是一种基于容器的操作系统层级的虚拟化技术. 2.LXC可以做什么? LXC可以在操作系统层次上为进程提供的虚拟的执行环境,一个虚拟的 ...
- django autocommit的一个坑,读操作的事务占用导致锁表
版权归作者所有,任何形式转载请联系作者.作者:petanne(来自豆瓣)来源:https://www.douban.com/note/580618150/ 缘由:有一个django守护进程Daemon ...
- RTSP协议分析(二)
以下是某省IPTV的RTSP协商过程: DESCRIBE rtsp://118.122.89.27:554/live/ch10083121594790060557.sdp?playtype=1& ...
- http头部解释
If-Modified-Since,If-Node-Match,ETag,Last-Modified 1 属于 Request Headers的是:If-Modified-Since,If-Node- ...
- import module, from module import funtion区别
import module与from module import funtion区别: import module导入模块后你需要使用module.function()来调用一个函数 from mod ...
- GSM与GPRS区别介绍
1. GSM是全球移动通讯系统(Global System for Mobile Communications)的简称 2. GPRS是通用分组无线业务(General Packet Ra ...
- HTML5对表单的约束验证
在HTML5中增加了许多新的功能,用于表单提交到服务器之前对表单进行数据的验证(抢了javascript的饭碗),有了这些功能,即便是javascript没有加载进来还是可以确保基本的验证.换句话说, ...