我使用node.js作为REST API。 有以下可用的操作:
现在什么是用户搜索,查询的逻辑路径? 我应该把它放到3.路线上还是应该创建一条额外的路线?
答案 0 :(得分:2)
我相信你会在这个问题上得到很多不同的意见。就个人而言,我会看到“搜索”过滤“所有联系人”给出:
GET / contacts?filter = your_filter_statement
你可能已经在GET / contacts上有过滤参数,以允许分页符合filter-statement。
编辑: 用它来解析你的查询字符串:
var url = require('url');
并在你的处理程序中('request'是你的nodejs http-request对象):
var parsedUrl = url.parse(request.url, true);
var filterStatement = parsedUrl.query.filter;
答案 1 :(得分:1)
有趣的问题。这是我多次的讨论。
我认为没有一个明确的答案,或者可能有,我只是不知道或不同意。我会说你应该添加一条新路线: / contacts / _search 在联系人列表上执行操作,在这种情况下是搜索。明确并定义您的工作。
答案 2 :(得分:-1)
GET /contacts
找到所有联系人。您想要所有联系人的子集。 URI中的分隔符表示子集?不是 ”?”;这是非等级的。 “/”字符用于分隔分层路径段。因此,对于联系人的子集,请尝试使用/contacts/like/dave/
或/contacts/by_name/susan/
等
按路径段对数据进行子集化的概念不仅仅是集合 - 它更广泛地适用。您的整个网站都是一个集合,每个顶级路径细分都定义了它的一个子集:http://yoursite.example/contacts
是http://yoursite.example/
的子集。它也适用范围更窄:/contacts/:id
是/contacts
的子集,/contacts/:id/firstname
是/contacts/:id
的子集。