RESTful URI设计

我正在寻找一种正确的方式来将搜索表示为RESTful URI。

我有两个模型:国家和州,各国有一个国家的集合。

代表搜索具有ID或名称属性的国家/地区的正确方法是什么?

api/countries/1/id

api/countries/Italy/name

要么

api/countries?id=1

api/countries?name=Italy

另外,如果我想查看状态列表?

api/countries/1/id/states

api/countries/Italy/name/states

谢谢


对于这两个模型即。 countriesstates ,我认为遵循Uri模式将是最合适的。

  • 所有国家: api/country
  • 具体国家: api/country/{England}
  • 所有国家: api/country/{England}/State
  • 具体州: api/country/{England}/State/{Berkshire}
  • 在上面的例子中{}里面的值代表变量。


    这取决于你的口味。 两种变体都可以。

    对于状态,可以创建新的端点

    api/states/name/Italy
    

    您的方法,在REST URL中使用名称是错误的。 这个名字只是国家的一个属性,而不是一个子资源,这意味着你不应该在URL中看到它。 然而,一个选项可以用作键,在这种情况下,名称的可以用来代替ID。

    api/countries/Italy
    

    我认为你想实现的目标是过滤字段,即只获取名称:

    api/countries/Italy/states?fields=name
    

    或者,如果您预先定义了某些格式

    api/countries/Italy/states?format=onlyName
    
    链接地址: http://www.djcxy.com/p/40957.html

    上一篇: RESTful URI design

    下一篇: Getting the class a variable resides in