0

我刚学会在 openproject 上使用“超媒体休息 API”

我想在 API 上使用带有“_links”属性的“过滤器”参数,但不知道如何

例子:

http:/<my_domain>/target/api/v3/projects/design/work_packages?filters=[{"updatedAt":{"operator":"<>d","values":["2017-06-10T22:00:00Z","2017-07-05T22:00:00Z"]}, "_links":{"type":{"title":{"operator":"=","values":["Box"]}}}]

==> 我的问题:

  1. 我不知道"_links":{"type":{"title":{"operator":"=","values":["Box"]}参数过滤器的用途。现在,结果不是“_links”的过滤器
  2. 给我看书名,让初学者学习 API

请帮帮我!

谢谢!

我的 api 的图像

4

1 回答 1

1

我了解您想要实现的是获取项目“设计”中的所有工作包,这些工作包已在特定时间间隔内最后更新并且属于“盒子”类型。

当涉及到过滤器的结构时,OpenProject 中的过滤器不区分原生属性(如 updatedAt)和链接资源(如类型)。语法总是

{"<name of the filter>": {"operator": "<operator>": "values": [<list of values>]}}

但是,当涉及到过滤器值时,就会有所不同。对于链接资源,客户端应使用 id,而本机属性需要诸如整数、字符串或日期之类的本机值。

对于您的请求,上述要求客户发出以下查询:

GET http://domain/target/api/v3/projects/design/work_packages?filters=[{"updatedAt":{"operator":"<>d","values":["2017-06-10T22:00:00Z","2017-07-05T22:00:00Z"]}}, {"type":{"operator":"=", "values":["10"]}}]

我从您提供的屏幕截图中为“Box”类型选择了 10 的 ID。

要获取所有可用过滤器的过滤器值,您可以调用

POST http://domain/target/api/v3/queries/form

与身体

{"name":"default","_links":{"project":{"href":"/api/v3/projects/design"}}}

响应将列出_embedded/schema/_embedded/filtersSchema数组中所有可用的过滤器。

于 2020-07-12T09:58:57.033 回答