Flask:使用数组参数实现HTTP GET

时间:2014-05-14 11:51:40

标签: http rest flask payload rfc2616

我正在实现一个包含/feed请求的HTTP REST API。该请求返回用户的新闻源。

该请求附带一些参数,包括userId,关注者列表,startTimemaxItems

在服务器端(Python和Flask)实现它的最简单方法是添加一个JSON有效负载,我可以从中读取参数。

唉,将有效负载添加到GET请求is not a good idea,许多客户端库都不支持它。

我的选择:

  • /feed POST次请求。这很难看,因为POST不应该用来从服务器请求信息。
  • /feed来电分为/updateFollowersPOST)和/feedGET)。这会浪费时间,因为GET只能在POST电话之后拨打电话。

两种选择似乎都错了。是否有任何标准方法可以使用一堆复杂的参数进行GET调用?

1 个答案:

答案 0 :(得分:1)

  

将/ feed调用拆分为/ updateFollowers(POST)和/ feed(GET)。   这会浪费时间,因为GET调用只能在之后进行   POST电话。

REST并没有真正有规则,因为你可能已经意识到了,但我想与你分享我的观点:提出“请求类型动词”是非常难看的。在这样的资源中,所以我不会这样做。

  

发出/提供POST请求。这很难看,因为POST不应该   用于从服务器请求信息。

我理解为什么你认为这很难看。然而,使用POST请求获取数据听起来是错误的,如this question's top answer中所述:

  

实施RESTful搜索的最佳方法是考虑搜索   本身就是一种资源。然后你就可以使用POST动词了   正在创建搜索。你不必从字面上创造一些东西   在数据库中以便使用POST。

由于这与您正在做的事情类似,因此使用POST可能不是一个坏主意。我没有看到更好的选择,所以你可能想要像这样实现它。