如何在 openproject 的 API.v3 上使用“_links”属性参数进行过滤

How to filter with "_links" properties params on API.v3 in openproject

我刚学会在 openproject

上使用“hypermedia rest API”

我想在 API 上使用带有“_links”属性的“filter”参数,但不知道诀窍

示例:

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 适合初学者

请帮帮我!

谢谢!

Image for my api

据我所知,您想要实现的是获取“设计”项目中所有在特定时间间隔内最后更新且类型为“Box”的工作包。

当谈到过滤器的结构时,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”提取了 id 10。

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

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

身材

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

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