【问题标题】:How do I use the Loopback where filter correctly on REST-API如何在 REST-API 上正确使用 Loopback 过滤器
【发布时间】:2019-06-05 23:42:01
【问题描述】:

您好,我似乎错过了一些关于 Loopback where 子句或语法的信息。我的问题是,如果我尝试获取匹配模型实例的列表,我会收到一个空数组,如果在环回 api explorer 中或通过 http api 请求没有区别。

我的“主题”模型:

[
  {
    "user": "string",
    "semester": "string",
    "subject_name": "string",
    "subject_relevance": 1,
    "subject_details": 0,
    "id": "string"
  }
]

主题的一个实例:

{
  "user": "59eef907cc199c1cf8f99296",
  "semester": "59eef6f8ebf12e1a37ee898b",
  "subject_name": "Mathematik",
  "subject_relevance": "1",
  "subject_details": "",
  "id": "59eef96aebf12e1a37ee898f"
}

我的 Loopback API Explorer 过滤器:

{"where" : {"semester" : "59eef6f8ebf12e1a37ee898b"}}

我的http请求:

http://localhost:3000/api/subjects?filter[where][semester]=59eef6f8ebf12e1a37ee898b

我收到的结果:

[]

如果我尝试搜索这个:

{"where" : {"subject_name" : "Mathematik"}}

或在浏览器中:

http://localhost:3000/api/subjects?filter[where][subject_name]=Mathematik

我正确或按预期接收实例。所以我通过documentation 努力寻找一些提示或解决我的问题的方法。有人可以帮助我或建议我一些东西来找回正确的实例吗?我错过了什么吗?这些是 ID 字段是否与此有关?

提前感谢您的帮助!

【问题讨论】:

  • 这很奇怪,它应该是一致的,我从来没有遇到过这个

标签: loopback


【解决方案1】:

有两种方法可以根据 where 子句获取记录

一个是使用'findOne'方法

获取请求

http://localhost:3000/api/subjects/findOne?filter[where][semester]=59eef6f8ebf12e1a37ee898b

另一个是使用普通的get请求

http://localhost:3000/api/subjects?filter={"where":{"semester":"59eef6f8ebf12e1a37ee898b"}}

【讨论】:

    【解决方案2】:

    我使用的是 loopback 4,我也遇到了同样的问题。
    Here is the issue in loopback git

    解决方案是在 @model 装饰器中添加此设置

    @model({settings: {"strict":false, "strictObjectIDCoercion": true}})
    

    【讨论】:

      猜你喜欢
      • 2016-10-06
      • 2020-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-12
      • 1970-01-01
      • 2016-10-27
      • 1970-01-01
      相关资源
      最近更新 更多