跳至主要內容

如何设计RESTful接口

gqzclGolang后端接口后端大约 1 分钟

如何设计RESTful接口

什么是RESTful

RESTful是一种网络应用程序的设计风格和开发方式,基于HTTP,可以用XML格式或JSON格式定义

设计规则

后端提供的RESTful API中,URL只使用名词来指定资源,原则上不使用动词,例如:http://api.com/v1/profile 表示获取某人的详细信息。

使用HTTP协议里的动词来实现资源的添加,修改,删除等操作。即通过HTTP动词来实现资源的状态扭转:

  • GET(SELECT)从服务器取出资源

  • POST(CREATE)在服务器新建一个资源

  • PUT(UPDATE)在服务器更新资源

  • DELETE从服务器删除资源

比如:

DELETE http://api.com/v1/profile: 删除某人的好友 (在http parameter指定好友id)

POST http://api.com/v1/friends: 添加好友

UPDATE http://api.com/v1/profile: 更新个人资料

注意事项

接口要保证幂等性

当多次重复请求接口时要能保证与预期相符

解决方案:

标准化的响应结果集

响应结构中要包含code和message两项,以及可选的data属性,包含额外数据

语义层面也要遵循响应的规则,如code状态码要同一规范

设计无状态接口

每一个请求都能得到相同的预期

使用redis等中间件来集中管理状态信息。