前端吐槽的后端接口那些事

今天与另外一位前端开发人员扯起了后端接口的皮(我也是前端人员),那个兄弟对后端人员提供的接口很大的意见(我是司空见惯),不过他说的也确实有道理,因此结合个人看法,但愿提供接口的人员能多加注意。html

1.没有文档...前端

例如新的前端人员到了一个新的公司,使用接口时,问这个这个不知道,问那个那个不知道,要文档没文档,这绝对是前端人员最抓狂的事,内心确定是一千只草泥马奔腾而过。后端

为何要文档?数据结构

1. 文档是当前开发者甚至后面的接盘侠(后面开发者)可以清晰往下作的指引。框架

2. 即使是简单的东西,但若是不写文档,之后口口相传消耗的工做量会比写文档更多。单元测试

3. 好记性不如烂笔头,一段时候后,可能连开发者都忘记接口的用途。测试

文档怎么写?spa

1. 在线文档。code

在线文档易于更新和他人查看,例如可使用Swagger编写接口文档。htm

PS:Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。

2. 本地文档。

本地文档通常用Word文档,可是比较不易传播,但能离线查看。

Final~

文档是及其关键的,不管是在线文档仍是本地文档,有是关键。虽然写文档是麻烦的事,但对后端人员来讲,是利人利己。

2.文档不全...

额,就是有了文档,文档里面对接口的描述也可能不全,可能缺每一个参数详尽描述(取值范围、类型)、请求方式(GET、POST、PUT、DELETE)、返回数据的全部状态等等。这里面可能最缺就是返回数据的状态!

通常的返回数据结构~

公司的数据接口返回结构是

{
     s : 0/ 1,     //表示此操做的处理状态( status ),通常简单的成功 /不成功,使用 1/0 表示。
     m : 'xxxx',  //表示此操做的提示信息( message ),通常只用来显示操做失败时提示信息。
     r : [],  //表示此操做的返回值( result )
     count : x  //返回的数据条数
}

这种数据结构看起来没问题,确实也没大问题,问题就是出在s这个字段。有许多的接口不只仅只有两种状态,成功状态只有一种却是没问题,问题就出在失败状态,失败可能有不少状况,一个简单的s:0不能说明失败的缘由(即使是有m提示信息,但用这个来区分很不靠谱,由于提示可能会变化),咱们不老是仅拿m作显示用。

升级返回数据结构~

那位同事建议如下方式应答

{
     s : 0/ 1/ 2/ 3,     // 0表明正常,1是参数有误,2是用户不存在,3是用户没权限等等
     m : 'xxxx',  //表示此操做的提示信息( message ),通常只用来显示操做失败时提示信息。
     r : [],  //表示此操做的返回值( result )
     count : x  //返回的数据条数
}

m、r、count 能够保持不变,可是s里面必须包含全部返回状态,表明这个接口全部业务的状况,前端开发人员也就能针对每种状况进行处理。

Final~

文档最重要的部分是返回值的状态,我也建议上面的升级返回数据结构,这样就不存在任何不明朗状况。既然写了文档,就把文档写好,写明朗,这也是利人利己地方。

3.接口参数没校验...

这个前端人员倒不是很关注,由于自己调接口以前都会先作校验,后端作参数校验只是双重保证。我以前也作过一段时间后端,也犯过没校验参数的错,额,由于后来没有作后端,也就没有去修正。不过仍是提醒后端人员,作好参数校验是第一步,不要偷懒了。

Final~

统一处理好接口校验,后端好好考虑下。

4.没保证接口原子性...

接口的原子性很重要,有时一个接口可能会干几件事,但不必定都能正常完成,这就致使可能存在原子性问题,接口不能准确被调用。

PS:原子性。一个原子事务要么完整执行,要么干脆不执行。这意味着,工做单元中的每项任务都必须正确执行。若是有任一任务执行失败,则整个工做单元或事务就会被终止。即此前对数据所做的任何修改都将被撤销。若是全部任务都被成功执行,事务就会被提交,即对数据所做的修改将会是永久性的。

Final~

原子性必定要保证,保证,保证!

5.接口问题不断...

前端开发人员调接口时候,可能会存在各自各样的问题,有问题能够理解,程序哪会没有bug,但不能太离谱啊,后端兄弟们。因此我以为在给出接口以前本身明确几件事:

1. 是否校验参数。

2. 是否全部的状况都测试过了,若是能够请写单元测试。

3. 是否返回数据准确明朗,响应状态码是否正常。

4. 文档是否已经完备。

 

总结

后端人员多体谅前端人员,在出现问题时,先检查自身,别一上来就跟前端干起来,要是本身的问题就尴尬了。


本文为原创文章,转载请保留原出处,方便溯源,若有错误地方,谢谢指正。

本文地址 :http://www.cnblogs.com/lovesong/p/5533149.html

相关文章
相关标签/搜索