Open utterances-bot opened 3 years ago
为什么? 我也不知道,但是 我们选择了 自定义. 另外, 宜家的api也是永远200, 在meta中自定义一套异常信息.
为什么? 我也不知道,但是 我们选择了 自定义. 另外, 宜家的api也是永远200, 在meta中自定义一套异常信息.
对于第四个问题我文章里可能没说太清楚,比如你有一个 create_user 的接口 规范的做法是这个接口应用使用 post /user { "name": "foo", } HTTP 实现的接口可以是: create_user(raw_data []byte) return 201 //数据创建成功
丑陋的做法就是: json_parse(body) //然后这里面你该返回什么数据结构? 假设你设计了个万能的数据结构。然后,你的API服务里有一个类似这样的switch接口 switch(action){ case "create_user": create_user(??) //这里你传啥好?,是解析好的json,还是 http 的 raw body? case "create_foo": create_user(??) //这里你又该传啥?,如果是解析好的 json,怎么和 create_user 需要的数据结构兼容? } return 200 //是你收到了数据,还是数据创建成功了?还是数据创建好了,我需要给你一个ticket?
一个 API 设计问题带来的思考
https://www.liyafu.com/2019-09-03-an-api-problem-myth/