HTTP请求在基于Mongo的API中搜索多个ObjectId?

时间:2018-05-23 00:11:23

标签: mongodb rest express mongoose

我希望在名为组织的资源上为API添加搜索功能。 组织可以在其上标记不同的位置受众 ID(我希望在搜索中使用)。由于这些ID是MongoDB ObjectIds,它们很长,我担心使用GET请求达到浏览器的最大查询字符串限制。例如:

GET http://my-site.com/api/organizations?locations=5afa54e5516c5b57c0d43227,5afa54e5516c5b57c0d43226,5afa54e5516c5b57c0d43225,5afa54e5516c5b57c0d43224&audiences=5afa54e5516c5b57c0d43223,5afa54e5516c5b57c0d43222

这可能与普通搜索有关,但如果用户选择多个位置受众,我不希望它中断。

关于如何处理这种情况的任何建议?

1 个答案:

答案 0 :(得分:0)

我之前遇到过你的情况。您可以将方法更改为POST

对于locationsaudiences的输入,您的资源尚未存在。你必须计算它。

By the definition of POST

  

对请求有效负载执行特定于资源的处理。

     

提供数据块,例如输入HTML的字段         形式,数据处理过程;

您必须为响应计算和创建新资源。这样做符合REST标准。