我正在实现一个包含/feed
请求的HTTP REST API。该请求返回用户的新闻源。
该请求附带一些参数,包括userId
,关注者列表,startTime
和maxItems
。
在服务器端(Python和Flask)实现它的最简单方法是添加一个JSON有效负载,我可以从中读取参数。
唉,将有效负载添加到GET
请求is not a good idea,许多客户端库都不支持它。
我的选择:
/feed
POST
次请求。这很难看,因为POST
不应该用来从服务器请求信息。/feed
来电分为/updateFollowers
(POST
)和/feed
(GET
)。这会浪费时间,因为GET
只能在POST
电话之后拨打电话。两种选择似乎都错了。是否有任何标准方法可以使用一堆复杂的参数进行GET
调用?
答案 0 :(得分:1)
将/ feed调用拆分为/ updateFollowers(POST)和/ feed(GET)。 这会浪费时间,因为GET调用只能在之后进行 POST电话。
REST并没有真正有规则,因为你可能已经意识到了,但我想与你分享我的观点:提出“请求类型动词”是非常难看的。在这样的资源中,所以我不会这样做。
发出/提供POST请求。这很难看,因为POST不应该 用于从服务器请求信息。
我理解为什么你认为这很难看。然而,使用POST请求获取数据听起来是错误的,如this question's top answer中所述:
实施RESTful搜索的最佳方法是考虑搜索 本身就是一种资源。然后你就可以使用POST动词了 正在创建搜索。你不必从字面上创造一些东西 在数据库中以便使用POST。
由于这与您正在做的事情类似,因此使用POST可能不是一个坏主意。我没有看到更好的选择,所以你可能想要像这样实现它。