手机app服务端接口开发启示随手记1

第一个情景,原来登录注册更新用户资料是分开的3个接口,那么容易想到的是注册之后不更新资料,但是又登录了的(修改资料当然需要登录)。根据墨菲定律,凡是可能会出问题的地方则迟早出现问题。果然产品上线3个月后数据库出现了几百条仅仅注册但是没有更新资料但登录了的用户。更要命的是,这些用户的资料随着一些业务逻辑线进入了solr,污染了附近用户相关的业务的数据导致周围的人以及查询出现空白资料的用户。

第二个情景,因为用户编辑广播消息或者图文资料的时候对图文的存储没有依照惯例进行处理也就是text中插入标记,然后将图片和text id绑定。而是使用的json分割记录的办法。其实这样做本质上并没有问题,但是问题出在我们用了ali的oss的服务以及我们的实习生能力真有问题还有就是我因为太忙了没有能够review他们的逻辑。事情是这样的,oss做了防盗链,图片获取是有时间限制的,所以我们不得不将oss的图片地址获取放到我们服务器上,一篇文章中可能出现很多的图片,小学生跟前端商量的结果居然是一次一次的去请求。。。。。。。。。

准备下班,先写道这里,回去再写剩下的,以及最后的解决方案和启示

1.从产品设计开始,一定需要将前端开发和后端开发拉上一起开会,方便对接口进行规划,在产品设计的初期一定要力求接口的简洁和合理。那么,如何算是简洁,如何算是合理呢?其实这两者是一个相悖的方向,简洁要求一个功能一个接口,但是app开发的合理却要求一次请求尽可能获得更多的有用信息。那么从中找到合理的平衡点就很重要,特别是需要进行几步连贯操作的时候,尽可能的把逻辑放在app用一次或者尽可能少的请求次数达成,这样才能较为容易的保证数据的完整性,否则就会陷入请求和交互的烂泥中。

2.再处理长文字附带图片的内容的时候,尽可能的让客户端去自定义其格式,服务器端尽可能的避免对这个东西的干涉。但是图片的来源要做到可追溯。app根据公司的人手再决定是否需要防止盗链的功能,人手如果不足(比如楼主这一次被坑)那么防盗链功能很可能成为一个工作量爆发的地方,应该极力避免。

时间: 2024-10-07 16:21:25

手机app服务端接口开发启示随手记1的相关文章

基于CXF框架下的SOAP Webservice服务端接口开发

最近对webservice 进行入门学习,网上也是找了很多的学习资料.总得感觉就是这了解点,那了解点.感觉不够系统,不够容易入门.差不多断断续续看了一个星期了,今天小有成果,把客户端,服务端都搞定了.我先写服务端,在说客户端. 框架:服务端webservice是spring+cxf的maven工程. 环境:jdk1.7+maven3.3.9+tomcat7 新建maven工程可以参考我之前的博客:使用eclips创建Maven项目. 1.引入开发的依赖.pom.xml<project xmlns

api服务端接口安全

api服务端接口安全性解析 http://blog.csdn.net/tenfyguo/article/details/8225279 常用的基于token的实现方案 http://blog.csdn.net/tenfyguo/article/details/8225279 token常常用在各种应用中,如下场景: 1,用户输入密码和帐号后,系统进行验证后,生成一个session,分配一个sessionid给使用者,后续服务使用者就无需每次都输入密码和验证密码了,只需把对应的帐户和session

移动端与PHP服务端接口通信流程设计(增强版)

增强地方一: 再增加2张表,一个接口表,一个授权表,设计参考如下: 接口表 字段名 字段类型 注释 api_id int 接口ID api_name varchar(120) 接口名,以"/"作为分割线,如 blog/Index/addBlog api_domain varchar(256) 所属领域 is_enabled tinyint(1) 是否可用  1:可用 0:不可用 add_time int 添加时间(戳) (注:只列出了核心字段,其它的再扩展吧!!!) 授权表 字段名 字

api服务端接口安全性解析针对

针对 --->非开放性平台 --->公司内部产品 接口特点汇总: 1.因为是非开放性的,所以所有的接口都是封闭的,只对公司内部的产品有效: 2.因为是非开放性的,所以OAuth那套协议是行不通的,因为没有中间用户的授权过程: 3.有点接口需要用户登录才能访问: 4.有点接口不需要用户登录就可访问: 针对以上特点,移动端与服务端的通信就需要2把钥匙,即2个token.第一个token是针对接口的(api_token):第二个token是针对用户的(user_token): 先说第一个token(

App架构设计经验谈:服务端接口的设计

转自:http://www.jb51.net/article/60796.htm App与服务器的通信接口如何设计得好,需要考虑的地方挺多的,在此根据我的一些经验做一些总结分享,旨在抛砖引玉. 安全机制的设计 现在,大部分App的接口都采用RESTful架构,RESTFul最重要的一个设计原则就是,客户端与服务器的交互在请求之间是无状态的,也就是说,当涉及到用户状态时,每次请求都要带上身份验证信息.实现上,大部分都采用token的认证方式,一般流程是: 用户用密码登录成功后,服务器返回token

API开发第四篇:定义客户端/服务端接口协议

在进行API开发的时候,需要事先定义好app与server交互的数据格式,这样前端人员与服务端人员才能够事先决定好如何获取数据.如何解析数据.如何传输协议. 在我看来目前接口协议无外乎这三种情况: 1. json数据进行交互 2. xml数据进行交互 3. 自定义数据格式交互 自定义数据格式进行前后端的数据交互,需要花费较大的精力,而且需要很有经验的人设计的协议才会确保各个平台的兼容以及良好的可阅读性.并且解析.封装都需要自己来用代码实现,很多第三方库都没办法用上.因为这里我不进行讨论.主要说说

API开发第一篇:关于session的APP服务端API开发

第一次做app的API开发,遇到的第一个问题就是:我的sessionid哪儿去了? 实现的一个功能是:短信验证功能,大体流程图如下: 问题的产生就发生在提交验证的时候,客户端并未通过header头带过来sessionid.那么这个时候,服务端就不知道该从哪一个session会话中取出值来进行判断.所以问题的解决核心点就是这个sessionid哪儿去了?以前只做PC端的时候,从来不怎么关心这个问题,因为浏览器自己就帮我们把这些事情搞完了. 解决办法一: 首先声明这个错误并不是由于服务端的错误,服务

SpringMVC 利用HttpPost向服务端接口上传文件

现在Spring的广泛使用使得以前我们在做文件上传的不需要对数据进行转码传输,MultipartEntity内封装了各种方法,我们可以直接在客户端实例化 MultipartEntity类将需要上传的文件以参数的形式写入HttpPost的Entity,这样类似与在前端使用form表单提交来实现文件上传,区别是前端我们是在form里面设定enctype="multipart/form-data"这个参数.废话不多说,下面是代码: 首先是客户端: import java.io.File; i

后台服务端接口验证项目实例~~

前言: 在当前开放互联的大环境下,接口互通成了最最普通常见数据通讯与交互的一种方式:接口测试的重要性也是不言而喻,但却成了普通功能测试人员的一道屏障:特别是服务端的接口验证更是麻烦:这里抛砖引玉希望更多童鞋参与多多讨论. 场景&描述: c1->s1->s2 s1 <-s2 协议:http c端,发起c1(pay)请求,服务端处理完毕,通过s1接口把(pay)请求支付接口告诉指定s2服务地址:s2服务地址解析s1接口内容,正常返回SUCCESS,异常返回FAILURE;s1收到s2