如何写好接口(php写app移动端接口示例)
来源:互联网 发布:手机淘宝有卖家版吗 编辑:程序博客网 时间:2024/06/06 00:11
如何写好接口
- 目的:清楚明白所写接口的用途
- 安全性:做好接口的安全性,防止接口数据泄露,做好必要的参数加密措施
- 按需分配: 接受值和返回值要实用,不接受和返回不需要的数据,返回值返回什么应与使用者时时沟通
- 规范性:参数命名规范有意义,让使用者一目了然;返回值要包含调用接口状态信息,返回数据格式最好使用JSON
- 日志:写接口调用日志,方便查到接口调用错误,实现监控和对接快捷
接口安全性与规范性参考
/** * 用户登录接口 * 请求方式:post * 接受参数: * @param $mobile 用户名 -- 可逆 通过 urlencode(base64_encode()) 加密 * @param $pwd 加密密码 -- 可逆,同时定义一个加密规则 * return json * {"code":int,"message":string,"data":array} * 注意事项: * */ public function login() { $mobile = isset($_POST['mobile']) ? base64_decode(urldecode(escapeQuotes($_POST['mobile']))) : ''; $pwd = isset($_POST['pwd']) ? escapeQuotes($_POST['pwd']) : ''; $totp = isset($_POST['ttoken']) ? escapeQuotes($_POST['ttoken']) : ''; $commonmodel = self::getModel('common'); try { // 检查参数 $commonmodel->checkRight($mobile, 'mobile'); $commonmodel->checkRight($pwd, 'pwd'); $commonmodel->checkRight($totp, 'ttoken'); // 验证登录 $usersmodel = self::getModel('users'); $res = $usersmodel->userLogin($mobile, $pwd); } catch (Exception $e) { $res = array( 'code' => 10000, 'message' => $e->getMessage() ); } // 写入接口日志 $des = "IP:" . getIp() . ";请求用户登录接口;返回:" . $res['message']; $commonmodel->logResult('10001', $res['code'], $des); echo json_encode($res); }
接受的参数,比如用户名和密码都进行了加密处理,密码可以定义一个更安全的加密规则,抓包查看请求参数也不会暴露用户数据。
调用接口写好接口日志,记录调用什么接口,返回状态码,接口返回详情等等。。。
返回值参考
{ code:0, message: "success", data: { key1: value1, key2: value2, ... }}
- code: 返回状态码,1表示成功,非1表示各种不同的错误,10000可以用来表示客户端传参错误
- message: 描述信息,成功时为”success”,错误时则是错误信息
- data: 成功时返回的数据,类型为对象或数组
不同错误就要定义不同的返回状态码,这里举个例子:
状态码表
返回值 说明
10000 执行异常,一般为客户端传参出错
10001 用户不存在
10002 密码错误
10003 用户状态未激活
10004 redis保存值错误
10005 令牌(token)错误
10006 二维码序列错误
10007 验票错误
1 验证成功,返回需要信息
10000可以定义为客户端传入的参数有错,直接抛出异常,区别客户端与服务端之间的错误
接口文档参考
接口文档示例 下载
2 0
- 如何写好接口(php写app移动端接口示例)
- php如何写接口
- SpringMVC如何写APP接口
- 如何用PHP简单写App接口
- 用PHP简单写App接口
- Java如何理解接口,写得好!
- 在App Store里混,如何写好关键词?
- 在App Store里混,如何写好关键词?
- 在App Store里混,如何写好关键词?
- php写app接口并返回json数据
- 关于PHP写APP接口的安全问题探讨(一)
- 关于PHP写APP接口的安全问题探讨
- PHP给App端写简单的接口
- 如何写好论文
- 如何写好测试报告
- 如何写好测试报告
- 如何写好引言
- 如何写好代码
- Linux Desktop Entry 文件
- ionic 的项目实现从手机相册选取图片或拍照并上传至服务器
- Effective C++读书笔记---了解C++默默编写并调用哪些构造函数
- Session的load()和get()方法使用区别:
- JavaScript省级联动
- 如何写好接口(php写app移动端接口示例)
- Maven学习笔记(1) --- 仓库
- 字符串排序
- android 获取本地存储文件是否在某一段时间内更新过
- Jasmine文档(二)
- Java WeakReference的理解与使用
- Android自动化测试--monkey的使用
- 淘宝搜索排序
- OpenGLes学习之路(一)————opengles内部执行顺序(1)