RESTful API
资源名:小写,并使用中划线分隔名词
URI使用复数:因为复数更适合表达整体,而单数则表示文件目录结构
HTTP方法:建议使用GET, POST, DELETE; 因为PUT逻辑包含了POST,当资源不存在的时候,创建,当存在的时候,全量更新,之中蕴含了逻辑,不像GET,
POST简单存粹。
HTTP代码:
200 OK
201 CREATED
400 BAD REQUEST,如参数错误
401 UNAUTHORIZED / 403 FORBIDDEN
404 NOT FOUND
500 INTERNAL ERROR
502 BAD GATEWAY 当上游系统返回的请求不合法时
503 SERVICE UNAVAILABLE 当服务过载时
504 GATEWAY TIMEOUT 当上游服务超时时。建议用好HTTP代码,因为我们服务所需要的场景已经被包括,很全面。不要轻易自定义状态码,增加复杂度。
版本号:面向用户提供服务,提供的资源服务不要轻易做破坏性升级,影响到服务使用者。并且一旦做为服务发布,那么服务的稳定期是因当被保证的,如facebook的API
承诺至少二年有效,我们的稳定服务期是多久?需要团队来回答
分页:拥有默认分页设置,并且需要支持用户可自定义分页标准,为了安全和可靠性,我们需要对上限和下限进行管理
响应格式:首选JSON,考虑到可读性和普遍性,以及对其它格式转换器的友好性。根目录建议用字典,方便属性追加,而不会造成破坏性更新,方便迭代管理,并用户友好
错误信息:作为服务,首要考虑用户友好性,http code本身具有表意性,加上错误信息的辅助,我们因该考虑如何帮助到服务调用者,进行问题排查,及下一步动作
API文档说明:可视化工具,得于用户查询和测试
批量数据操作:不建议提供批量数据通过api集成,使用场景有可能是批量导入,如果该任务执行时间过长,如超过1分钟,建设使用后台任务进行处理,如果较短,则可使用rpc
最后更新于