[转载]app后端API开发总结

2018-01-31  本文已影响608人  无善无恶

app后端API开发总结

25 Jun 2015

一.API 设计规范

1.1 按需Restful设计原则

按业务选择Restful API还是 josn风格的,关于restful api可参考:

1.2 合理的api命名

1.3 api的安全性

推荐阅读:

1.4 api返回数据

二.API开发注意事项

2.1 emoji 表情的处理

emoji 表情是 4 个字节,而 MySQL 的 utf8 编码最多支持 3 个字节,所以插入会出错。为了解决这个问题,MySQL 开始支持 utf8mb4. 具体参考让 MySQL 支持 emoji 存储

推荐一个python第三方模块emoji: emoji terminal output for Python

其他资源:

2.2 图片处理

参考:app后端设计(12)--图片的处理

app后台图片处理的一个基本原则,数据库中只保存原图的路径。对于同一张图片来说,针对不同机型,不同app版本所需要的不同尺寸,使用动态生成的策略,大体思路如下:

在app整个系统架构中,图片应该有两层缓存:

(1)app本地的图片缓存,当app中没有该图片时,才去服务取

(2)服务器的图片缓存,记录图片不同尺寸的保存路径

图片操作是非常消耗CPU,内存,和大量的磁盘IO,这里推荐GraphicsMagick,在GraphicsMagick Programming Interfaces 查看支持编程语言的接口,对于python的支持在这里

2.3 考虑移动端的网络情况和耗电量

APP后端开发不同web后端开发的地方有很多,虽然并没有细分。比如网络流量,这里汇总注意事项。

2.4 跨平台性

所谓跨平台是指我们的接口要能够支持不同的终端,比如android、ios、windowsphone以及桌面软件、网站等, 采用通用的解决方案,比如通信协议就采用最常用的HTTP协议,如果是即时通信,可以采用开放的XMPP协议,做游戏的可以采用可靠的TCP协议,除非TCP不够用了,再采用定制的UDP协议。 数据交换采用xml或者json格式等等。 总之,要达到的目标就是让不同的端能够很方便的使用你的接口。

2.5 通用的数据交换格式

目前,对于接口和客户端的数据交换格式,基本上就是两种,xml和json,而现在使用json的应该占大多数。交换的数据包括两种,一种是客户端请求服务器端接口时传递的一些参数,一种是服务器端返回给客户端的数据。

2.5.1 request

对于客户端的请求参数,现在也越来越多的接口要求采用json的格式,而不是以往最常见的key_value对了。

比如,接口需要username和password两个参数 key_value pair的方式是:

username=xxxx&password=*****

然后通过GET或者POST方式传送。

而通过json方式交换数据的话,格式如下,直接POST到服务器端。

{
'username':'xxxx',
'password':'*****'
}

2.5.2 response

对于服务器端返回的json数据格式,需要注意两个问题: 一是汉字编码问题,因为json(javascript)内部支持Unicode编码,会将汉字等转换成unicode编码保存, 所以在返回结果中,对于中文,可以直接输出中文,也可以输出中文的unicode编码,json解析器都会很好的解析。 比如下面两种方式都是可以的。

{"code":"208","data":"\u53c2\u6570\u4e0d\u5b8c\u6574"} 
{
    "code": "208",
    "data": "参数不完整"
}

二是字段的数据类型,特别是数字类型的,json中尽量转成数字格式, 比如{'userid':128}不要写成{'userid':'128'}

2.2 取舍之道

参考:

移动APP服务端API设计应该考虑到的问题

app后端设计--总目录

上一篇 下一篇

猜你喜欢

热点阅读