专栏首页大话swift聊聊API接口那些事

聊聊API接口那些事

今天不写代码了,外卖下着雨,和大家唠唠API接口开发中哪些撕逼的事情

1、数据格式

协商的结果

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

1.{ 
2."code": 0,
3."msg": "success", 
4."data": {} 
5.}

web前端:可以

Android:可以

IOS:可以

开发阶段

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

1.{
2."code": 0,
3."msg": "success",
4."data": [{
5."id": 1,
6."username": "hanyun"
7.}, {
8."id": 1,
9."username": "hanyun"
10.}]
11.}

后端:怎么了

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

1.{
2."code": 0,
3."msg": "success",
4."data": {}
5.} 

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

Android开发:你再看看

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

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

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

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

后端:好的

(一分钟之后)

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

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

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

后端:行我给你们改回来

(一分钟之后)

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

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

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

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

最终协商的结果:

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

2、命名规范

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

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

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

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

(最终Android力挽狂澜接口采用驼峰命名法)
(正在写接口的后端)

3、数据重用

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

1.{
2."code": 0,
3."msg": "success",
4."data": [{
5."id": 1,
6."userName": "hanyun"
7.}, {
8."id": 1,
9."userName": "hanyun"
10.}]
11.}

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

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

1.{
2."code": 0,
3."msg": "success",
4."data": [{
5."id": 1,
6."username": "hanyun"
7.}, {
8."id": 1,
9."username": "hanyun"
10.}]
11.}

后端:。。。

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

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

web前端:你改一下呗

后端:行吧

(一分钟之后)

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

后端:。。。

ios、Android开发:赶紧改回去

web前端:不行

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

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

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

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

(一周后)

老板:上线了么

后端:没有呢

老板:怎么搞的

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

老板:那改回去

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

本文分享自微信公众号 - 大话swift(gh_ca2266b7cab0),作者:寒云

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • App内嵌支付宝哪些梗

    要说起移动支付App调用支付支付可谓是已经不再新鲜啦,楼主第一次接触App调用支付还是N年前的事情---依稀似乎记得那时是懵逼的就完成了。不过这次着实的被SDK...

    大话swift
  • 不支持泛型OC在接口数据的返回处理(YYModel)

    接着上篇文章中的API分module的处理,我们今天来说说返回数据参数的处理吧。

    大话swift
  • go基础入门之 channel多多

    上篇我们了解到了goroution和channel的基础概念,在这个过程中我们通过实例讲解了channel这个媒介如何实现在不同的channel中传递数据。当然...

    大话swift
  • Android的API 和版本对应关系

    用户2657851
  • slim.max_pool2d()

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

    于小勇
  • Vue生命周期详细图解

    beforeCreated 第一个生命周期函数 表示实例完全被创建出来之前,会执行它 此时data 和 methods 中的 数据都还没有没初始化

    杨肆月
  • 一文读懂比BitMap有更好性能的Roaring Bitmap

    1.什么是bitmap?为什么使用bitmap?Roaring bitmap与其他bitmap编码技术相比有哪些优势?2.Roaring bitmap将32位无...

    开发架构二三事
  • 浅入深出Vue:事件处理

    在前端开发中,经常要面对各种表单、按钮。而这里面就住着一个事件:点击 (click)。

    若羽
  • 论一次 View 树层级查看过程

    曾经,?大演示一波通过类似截图一样的东西就能分析当前 View 层级,感觉很湿牛掰。

    HLQ_Struggle
  • 一个最简单的WebSocket hello world demo

    代码里所需的server.js我已经上传到我的Github上了: https://github.com/i042416/KnowlegeRepository/...

    Jerry Wang

扫码关注云+社区

领取腾讯云代金券