Rest 如何创建用于获取数据的正确API URL

Rest 如何创建用于获取数据的正确API URL,rest,api,url,Rest,Api,Url,我正在创建一个处理地理数据的简单API 有些URL看起来非常简单,如: GET /towns/{id} 或 现在我想通过别名获取一个城镇,我应该使用这种URL吗 GET /towns/alias/{alias} 如果我还想获得某个城镇附近城镇的列表,该怎么办 GET /towns/closest/{id}/radius/{radius} 我知道我的URL可以是任何我想要的。什么是标准的方法?是的,它可以通过URL路由实现。您可以通过URL发送任意数量的参数 你能确认一下你使用的技术吗 我知

我正在创建一个处理地理数据的简单API

有些URL看起来非常简单,如:

GET /towns/{id}

现在我想通过别名获取一个城镇,我应该使用这种URL吗

GET /towns/alias/{alias}
如果我还想获得某个城镇附近城镇的列表,该怎么办

GET /towns/closest/{id}/radius/{radius}

我知道我的URL可以是任何我想要的。什么是标准的方法?

是的,它可以通过URL路由实现。您可以通过URL发送任意数量的参数

你能确认一下你使用的技术吗

我知道我的URL可以是任何我想要的。什么是标准的方法

没有一种真正的“规范化方法”来设计URL,正如没有一种规范化方法来命名变量一样——只有本地拼写约定

区分分层数据和非分层数据:

路径组件包含通常以分层形式组织的数据,这些数据与非分层查询组件(第3.4节)中的数据一起用于标识URI方案和命名机构(如果有)范围内的资源

使用分层数据的效果是,您可以利用点段从一个URI计算另一个URI

比如说

/town/alias/{alias}
/alias/{alias}
这两种拼写都是“好的”,但
/town/alias
提供了使用点段在
/town
下指定标识符的选项

/town/alias/abc + ../123
  => /town/alias/../123 
  => /town/123
当它允许您对层次结构中的多个资源重复使用表示时,这将非常方便

/town/alias/abc + ../123
  => /town/alias/../123 
  => /town/123