首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MEAN.IO中的多个get API (快递,角)

MEAN.IO中的多个get API (快递,角)
EN

Stack Overflow用户
提问于 2016-06-04 17:10:28
回答 1查看 69关注 0票数 0

在传统的REST中,我们应该像这样定义API:

  • 获取/api/things ->获得所有
  • POST /api/things ->创建
  • 获取/api/things/:id ->获取一个
  • PUT /api/things/:id ->更新
  • 删除/api/things/:id ->删除

我应该如何定义另一个‘获取一个’端点,以便通过除id以外的任何其他字段查询数据?例如:

  • GET / api /things/:->按标题获取一个(这肯定不起作用,因为api不知道参数名称)
  • 获取/api/things/title/:title?这对我一点也不管用。
  • GET /api/things?title=任何东西(这根本不能定义)。当我在我的index.js中写这个时: Router.get(‘?title=任何’,controller.getByTitle);

我明白了:

代码语言:javascript
复制
SyntaxError: Invalid regular expression: /^?title=whatever\/?$/: Nothing to repeat
    at RegExp (native)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-04 17:22:32

ID应该是唯一的标识符。给定一个ID,您最多应该返回一个资源。这就是为什么像GET /api/things/:id这样的URI是有意义的。

对于其他属性,可能是唯一的,也可能不是唯一的,您可以有多个结果,所以使用GET /api/things端点并传递查询参数:/api/things?title=mytitle

代码语言:javascript
复制
app.get('/api/things', function (req, res) {
    console.log(req.query.title); //mytitle
    ThingModel.find({
       title: req.query.title    
    }, function (err, things) {
         res.send(things);
    });
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37632932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档