如何使用HATEOAS和查询参数进行RESTful搜索?

Tro*_*vey 33 rest web-services hateoas

我想使用查询参数设计RESTful搜索URI.例如,此URI返回所有用户的列表:

GET /用户

前25名用户名为"Harvey":

GET/users?surname = Harvey&maxResults = 25

如何使用超媒体来描述"/ users"资源允许的查询参数?我注意到新的Google Tasks API只记录了参考指南中的所有查询参数.我会记录清单,但我也想用HATEOAS来做.

先感谢您!

Dar*_*ler 21

使用URI模板规范的当前草案中描述的语法,您将执行以下操作:

/users{?surname,maxresults}
Run Code Online (Sandbox Code Playgroud)


sta*_*and 6

另一种选择是使用html表单:

<form method="get" action="/users">
   <label for="surname">Surname: </label>
     <input type="text" name="surname"/>
   <label for="maxresults">Max Results: </label>
     <input type="text" name="maxresults" value="25"/> <!-- default is 25 -->
   <input type="submit" name="submitbutton" value="submit"/>
</form>
Run Code Online (Sandbox Code Playgroud)

这样的表单完全记录了可用的选项和任何默认值,它创建了指定的URL,并且可以使用您希望放在那里的任何其他文档进行注释.

  • 也许我错过了这一点,但如果您的资源不是HTML,这将无效. (2认同)