2

我们正在尝试使用 Coldfusion 10 在 Rest 服务中实现复杂的搜索功能。类似 projectid=1 和 active=1 和(ManagerName 包含 John 或 ManagerName 包含 alfred)

一种方法是 ?projectid=1&active=1&ManagerName=[John,Alfred]。但是,这不符合我的目的,因为 ManagerName 搜索不会返回所需的结果。此外,随着搜索过滤器数量的增加,查询字符串变得难以处理。

我试图通过 HTTP Get Request 获取一个 xml(带有所有搜索过滤器)作为输入,但这没有帮助,因为 GetHTTPRequestData() 不反映 xml 内容。

有没有办法通过 HTTP 获取请求传递 xml/json?如果 xml 是通过 HTTP Post 请求传递的,这会是一个不好的做法吗?是否有任何其他选项可以将复杂的过滤器参数传递给 REST 服务?

我在网站上浏览了很多类似问题的帖子,但仍然找不到解决我的问题的方法。

4

1 回答 1

3

GET应该是幂等的,它不应该修改资源的状态。严格限制getRead操作的使用

您的POST触发器资源创建,即连同有效负载(xml/json)。使用 POST 进行搜索是非常糟糕的做法。

此外,您应该注意缓存控制,因为您的GET请求可能会被缓存,如果您的搜索是实时的,您可能会得到陈旧的数据。

你可以举个stackoverflow例子

https://stackoverflow.com/questions/tagged/rest?sort=newest&pagesize=30

在上面的 UR1 中,路径元素questionstaggedrest导出question资源子集。查询参数建议过滤那些符合条件的参数。

于 2013-02-07T13:09:29.280 回答