聊聊API接口那些事

192 阅读3分钟

1、数据格式

协商的结果

后端:这个格式怎么样(后端抛出了一个数据格式)

{
	"code": 0,
	"msg": "success",
	"data": {}
}

web前端:可以

Android:可以

IOS:可以

开发阶段

Android开发:老铁,你这个格式有问题啊!

{
	"code": 0,
	"msg": "success",
	"data": [{
		"id": 1,
		"username": "hanyun"
	}, {
		"id": 1,
		"username": "hanyun"
	}]
}

后端:怎么了

Android开发:我们当初商量的格式是这样的(说着抛数据格式)

{
	"code": 0,
	"msg": "success",
	"data": {}
}

后端:没有错啊,是三个字段啊!code、msg、data,怎么了?

Android开发:你再看看

后端:(很认真的看了看,一脸真诚的说),嗯啊,没哟错啊

Android开发:我们当初协商的时候data是个map,你现在给我返回一个list

后端:这样啊!一条数据的时候data就是map,多条的时候data就是list

android开发:那你多条数据的时候在data里放个键值对,值是list

后端:好的

(一分钟之后)

ios开发:怎么蹦了(他的内心是这样的)

web前端:控制天怎么标红了(他的内心是这样的)

ios、web前端:哥们,这个数据格式怎么变了

后端:行我给你们改回来

(一分钟之后)

Android开发:数据格式怎么又变回来了(他的内心是这样的)

后端:你们三个自己协商,商量个结果告诉我,少数服从多数

最终结果:以ios和web前端为准

Android开发:。。。(默默的改着代码逻辑,内心@了后台开发无数次)

最终协商的结果:

{
	"code": 0,
	"msg": "success",
	"data": {}
}
  • code表示状态码
  • msg表示提示
  • data是泛型,单条是map,多条是list

2、命名规范

后端:我数据库里的字段是蛇形的,为了性能,查出来直接给你们就好了

iso、Android:不行(异口同声),蛇形的太难看

web前端:我这边都可以(内心是)

后端:。。。。你们说怎么办我就怎么办,你们协商就好了(尼玛,反正到时候接口慢还是老子的事情,你们这帮孙子又不管)

(最终Android力挽狂澜接口采用驼峰命名法)

(正在写接口的后端)

3、数据重用

web前端:哥们你这个接口有问题(说着抛来了数据格式)

{
	"code": 0,
	"msg": "success",
	"data": [{
		"id": 1,
		"userName": "hanyun"
	}, {
		"id": 1,
		"userName": "hanyun"
	}]
}

后端:怎么了(一脸无辜,这个接口我测过了)

web前端:这个是你上个接口的数据格式,你再看看(一脸认真的样子)

{
	"code": 0,
	"msg": "success",
	"data": [{
		"id": 1,
		"username": "hanyun"
	}, {
		"id": 1,
		"username": "hanyun"
	}]
}

后端:。。。

web前端:我这两个接口的数据要重用,你这个username和userName不一样,我没法重用

后盾:我单个接口的格式只要格式一直就好了

web前端:你改一下呗

后端:行吧

(一分钟之后)

ios、Android开发:怎么蹦了(后端真TMD的不靠谱)

后端:。。。

ios、Android开发:赶紧改回去

web前端:不行

后端:。。。(你们不是有MVVM么,我返回的数据就是model层,你们自己格式化不就好了。天天听你们吹牛逼,就知道撕逼,就知道难为我)

(最终结果,Android和ios力挽狂澜,接口改了回去)

老板:不行,这个前后端分离,不利于搜索引擎收录,改回去

web前端:现在有服务端渲染,我试一下

(一周后)

老板:上线了么

后端:没有呢

老板:怎么搞的

web前端:服务器端渲染没搞定

老板:那改回去

后端:嗯(内心一万只羊驼奔腾而过)