开发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 ...
随机推荐
- c版基于链表的插入排序(改进版)
1. [代码][C/C++]代码 /** * @todo c版基于链表的插入排序 * @author Koma **/#include<stdio.h>#include<st ...
- Codeforces 479E Riding in a Lift:前缀和/差分优化dp
题目链接:http://codeforces.com/problemset/problem/479/E 题意: 有一栋n层的房子. 还有一个无聊的人在玩电梯,每次玩电梯都会从某一层坐到另外一层. 他初 ...
- POJ 1639 Picnic Planning:最小度限制生成树
题目链接:http://poj.org/problem?id=1639 题意: 给你一个无向图,n个节点,m条边,每条边有边权. 让你求一棵最小生成树,同时保证1号节点的度数<=k. 题解: 最 ...
- JS中的forEach、$.each、map方法推荐
下面小编就为大家带来一篇JS中的forEach.$.each.map方法推荐.小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 orEach是ECMA5中Array新方法中最 ...
- PostgreSQL聚合函数的filter子句
一张表存储了学生id,科目,分数三个字段,求每个学生60分以下与参加的总科目占比.(今天电脑不好用,图片总是这样) 其实一个count(*) filter 就可以查出来,但是没用过PG的一个人竟然说 ...
- 利用Perlin nosie 完成(PS 滤镜—— 分成云彩)
%%%% Cloud %%%% 利用perlin noise生成云彩 clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image ...
- POJ3087(模拟)
#include"iostream" #include"string" #include"map" using namespace std; ...
- 【转】 Pro Android学习笔记(七七):服务(2):Local Service
目录(?)[-] Local service代码 调用Local ServiceLocal Service client代码 AndroidManifestxml定义Serviceacitivty的l ...
- 【转】 Pro Android学习笔记(六一):Preferences(5):组织Preference
目录(?)[-] PreferenceCategory Child Preference PreferenceCategory 如果有多个preference,我们希望能在他们组织在一起.有两种方式, ...
- rails Ajax--利用Jquery
view function init_tree(product_name) { var htmlobj=$.ajax({url: "get_all_file?param=" + p ...