Как фильтровать параметры свойств "_links" на API.v3 в openproject - PullRequest
0 голосов
/ 11 июля 2020

Я только что научился использовать «API отдыха гипермедиа» в openproject

Я хочу использовать параметр «filter» со свойствами «_links» в API, но не ноу-хау

Пример:

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"]} params. Теперь результат не является фильтром для "_links"
  2. И покажите мне названия книг для изучения API для начинающих

Помогите мне, пожалуйста!

Спасибо!

Изображение для моего API

1 Ответ

1 голос
/ 12 июля 2020
• 1000 OpenProject не делает различий между собственными свойствами (например, updatedAt) и связанными ресурсами (например, типом), когда дело касается структуры фильтров. Синтаксис всегда
{"<name of the filter>": {"operator": "<operator>": "values": [<list of values>]}}

Однако, когда дело доходит до значений фильтра, есть разница. Ожидается, что для связанного ресурса клиент будет использовать идентификатор, тогда как для собственных свойств требуется собственное значение, такое как целое число, строка или дата.

Для вашего запроса, приведенного выше, требуется, чтобы клиент выдал следующий запрос:

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"]}}]

Я взял идентификатор 10 для типа "Box" из предоставленного вами снимка экрана.

Чтобы получить значения фильтра для всех доступных фильтров, вы можете позвонить

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

с телом

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

В ответе будут перечислены все доступные фильтры в массиве _embedded/schema/_embedded/filtersSchema.

...