GET请求的REST API URL模式设计

时间:2017-12-28 14:22:02

标签: c# rest api naming-conventions

我目前正在为GET请求开发REST API。

我正在开发一个API,可以为应用,类别和平台返回赞助广告,例如:应用程序是谷歌,平台是移动站点,类别是主页横幅,以及基于上述输入返回广告的API。 我可以为同一个应用程序提供多个类别,同一类别可以存在于任何应用程序或平台中。 我无法确定如何将URLpattern配置为正确。

请告诉我一个好的网址格式。

我正在考虑以下选项。

  1. API /赞助/ {的applicationID} / {类别} /?platformId = 1

  2. API /赞助/ {类别} / {的applicationID} /?platformId = 1

  3. 其中category是一个字符串,例如壁纸,横幅等

2 个答案:

答案 0 :(得分:3)

根据您的描述,我的REST API的URI类似于

  • / api / application / {id}< - 返回(GET),创建(POST,PUT),更新 (PUT)一个应用程序对象
  • / API /类别/ {ID}
  • / api / platform / {id}

每个对象都有唯一的URI。

如果我要使用REST访问和创建特定广告,则可能看起来像

  • / api / ad / {id}< - 返回(GET),创建(POST,PUT),更新 (PUT)广告对象
  • / api / ad /< - 返回所有广告(GET)
  • / api / ad?application = {applicationId}& category = {categoryId}& platform = {platformId}< - 查询/过滤广告(GET)

可以使用RPC而不是REST,这有时会更有效/更简单,特别是如果你想要返回"加入"数据。例如:

  • / RPC / GetAds申请= {的applicationID}&安培;类别= {}的categoryId&安培;平台= {platformId}
  • / rpc / GetAds?a = {applicationId}& c = {categoryId}& p = {platformId}< - less less traffic

一切都不必是RESTful。

答案 1 :(得分:0)

我认为最好将值作为查询字符串传递,这是我们通常使用搜索,过滤或排序操作进行的操作。所以你不用担心订单

api/sponsored?category=1&applicationId=2&platformId=1