关于REST api的问题

我理解的rest是url指向资源,没有动词,比如:
查询某个会员信息:get /api/users/:id
查询某个订单信息:get /api/orders/:id

问题:
1、假如需要同时展示用户信息和订单信息:
如果是前端分别调接口来拼数据,会发很多的请求,降低性能。而且关联多了,会非常不好处理。
如果后端提供新接口,似乎有点违背rest初衷(我理解的)?随着需求增加许多奇葩的接口/api/users/orders,/api/users/orders/products

2、遇到一些动词是如何设计的?比如start任务,kill进程这种?

阅读 2.1k
2 个回答

1 可以每个页起个名字,每个名字对应一个 rest api
get /api/page/home
每个接口再调用其他接口做拼装

2 遇到一些动词是如何设计
start 任务:可以认为是修改了任务资源的一个属性,所以 PUT task/:id 或者 PATCH task/:id
kill 进程:可以认为是销毁了进程资源,所以 DELETE process/:id

RESTful API不止一层 而是可以多层。

  • /api/users/orders 这个就可以理解成获取某个用户的订单?
/api/user/:id/order
  • /api/users/order/product 这个理解成某个用户的某个订单内包含的商品
/api/user/:id/order/:order_id/product

至于说 第二个,要根据需要适当选择 而不是强行去套。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题