根据列表或检索返回不同的json响应是有效的



我目前正在设计一个Rest API,并且在系统中的2个用例的性能问题上有点卡住:

  • 列出所有活动(api/campaign) -需要返回列出和分页活动所需的活动数据。可能会返回多达1000条记录,并且需要很长时间才能检索和返回详细数据。所需的数据可以在单个DB调用中返回。
  • 检索活动项目(api/campaigns/id) -需要返回有关活动的所有数据,可能需要一秒钟的运行。需要多个DB调用来获取单个活动的所有活动数据。

我的问题是:它是有效的返回不同的json响应这2个调用(如果有良好的文档),即使它考虑相同的资源?我认为列表响应是检索响应的一个子集。这样做的原因是为了节省DB调用和带宽+解析。

提前感谢!

我认为/campaigns和/campaigns/{id}返回不同的信息是很好的和预期的。我建议使用查询参数来限制需要返回的信息量。例如,只向每个球员返回一个URI,除非您看到?expand=players查询参数,在这种情况下,您将返回详细的球员信息。

最新更新