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":"u53c2u6570u4e0du5b8cu6574"}
{
"code": "208",
"data": "参数不完整"
}
二是字段的数据类型,特别是数字类型的,json中尽量转成数字格式, 比如{'userid':128}不要写成{'userid':'128'}
2.2 取舍之道参考:
移动APP服务端API设计应该考虑到的问题
app后端设计--总目录
![[转载]app后端API开发总结-JieYingAI捷鹰AI](http://www.jieyingai.com/wp-content/uploads/2023/07/67bd7118b9190918.png)








