关于 app 接口开发

2017-02-03 12:28:17 +08:00
 erming

这篇就当是备忘录或以后开发 app 接口的规范参考吧。

1.关于加密

在抓包一些 app 之后,发现很多 app 对数据加密比较请示尤其是初创公司。如果没做好加密可能导致用户信息泄漏。

加密方式: MD5 、 RC4 、 RSA ,根据我们业务场景选择。

2.关于 app 版本

我们 app 一般一周一更新,部分功能也可能是热更新。 android 和 ios 的差异性。 有时候也要做好渠道和版本相关统计,运营或推广可能会用到。

3.关于 json 规范 如:

{ "error": false, //false 表示接口没有错误 true 表示请求异常 "data": { //服务器与客户端交互的数据

  }, 
  "message": "" //提示消息 如:参数错误

}

4.请求方式 get:选则 get 一般是把一些验证信息放到 http 请求的 head 中的 post:post 可以发送大量数据, php 的 post_max_size 默认值一般是 8MB,这时候验证信息可以放到 post 数据里面 5.开发文档 文档是服务器开发与客户端开发人员接口交流的重要途径,可能用 word/excel,或自己开发在线的文档 如: xx

转自: http://www.guodev.cn/archives/172

4630 次点击
所在节点    PHP
30 条回复
erming
2017-02-04 08:46:14 +08:00
@baiyi 恩都可以,我们想定义统一的格式,这样客服端只解析一种格式然后做业务判断,而不是兼容的去解析很多种格式。
@Kilerd 不是说非要用 md5 或 RC4 ,也不是说不能用,关键看你要怎么用。
annielong
2017-02-04 13:42:39 +08:00
看习惯了,还是喜欢先来一个统一的定义码,后面跟着信息
publicAdmin
2017-02-04 13:56:42 +08:00
@erming 请教下,关于产品迭代过程中后端和移动端的版本兼容你们是如何处理的呢?
erming
2017-02-04 14:06:00 +08:00
@publicAdmin 后端接口以兼容为主,如果业务逻辑变化比较大,会新开接口
publicAdmin
2017-02-04 14:20:43 +08:00
@erming 针对业务逻辑变化较大的新开了接口后,用户 App 没更新至最新版(同时没法做热修复),是强更客户端还是后端部署 2 套代码靠路由来控制请求版本?
erming
2017-02-04 14:37:19 +08:00
@publicAdmin 强制让用户更新体验不太好,我们规定在客户端请求接口时都要在 head 中加入版本号,如果接口有变化,服务端判断版本号后转发到对应接口上处理,客户端不需要做判断,这样做是因为一旦一个版本发布后更新是很困难的。
mingyun
2017-02-04 23:40:19 +08:00
jwt +1
chinvo
2017-02-05 11:40:27 +08:00
状态码我一般这样设计

Success:

{"status": 0}

Success with result:

{"status": 1, "result":<object>}

Faild:

{"status": -n, message: "xxx"}

至于消息加密,个人认为 HTTPS 足矣。
jcuan
2017-02-06 00:03:50 +08:00
以前我也用 true 和 false ,不过后来发现分辨错误还是不够用, errorMsg 也不是总能提示给用户的,而且总觉得这种提示信息由前端小伙伴控制比较好~~
还是用 errorCode 错误码比较棒。
最近刚用的:
0-没错误
1-9 服务器错误
10-99 前端参数错误
100-用户输入错误~~
erming
2017-02-06 08:54:38 +08:00
@jcuan 恩恩,很好。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/337850

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX