REST命名最佳做法/意见-可以只使用没有任何名词的变量吗?

时间:2019-01-10 10:45:22

标签: rest naming

不确定我是否在这里正确使用了术语,但最好在示例中加以说明:
如果我使用API​​来获取给定区域中的人口计数,通常可以吗?

/population/{state}/{city}/{district}

或者我应该使用

/population/states/{state}/citys/{city}/districts/{district}

情况A ,API仅返回一个数字,具体取决于您指定的数量
情况B ,API仅返回一个数字,但是您必须始终指定每个变量,这意味着仅定义州和城市无效:

我认为最好选择更具解释性的方法。还是我可能会缺少其他逻辑?

1 个答案:

答案 0 :(得分:1)

通常来说,对于REST端点,“ /”表示您正在访问子资源。因此,这实际上取决于您的尝试。

据我了解,您的主要目标是在给定多个参数的情况下检索总体。

因此,如果您谨记以下几点,那么/population/state/{state}/city/{city}/district/{district}约定将起作用:

  • /population:返回总人口
  • /population/states/:返回每个州的总人口
  • /population/states/{state_name}:返回的总人口 给定的州及其每个组成城市。
  • 依此类推

请注意,我在子资源名称中使用了复数形式,即states而不是state

但是,如果您只打算返回一个数字而不是细分,那么可以考虑以下替代方法:

获取 /population?state=stateName&city=cityName&district=districtName