У меня есть три операции с коллекциями на одном ApiResource, у которых есть разные normalization_context
и filters
.
/equipments
Получить все оборудование (отфильтровано по текущему пользователю)/equipments/A
Получить все оборудование, соответствующее правилам A/equipments/B
Получить все оборудование, соответствующее правилам B
Некоторые фильтры устанавливаются на вложенные свойства (идентификаторы связанных сущностей). Я хочу дать потребителю API значения, которые он может использовать для определенных фильтров. Допустим, у меня есть фильтр компании, общий для всех конечных точек.
- Для
/equipments
допустимые значения: 1,2,3 - Для
/equipments/A
допустимые значения: 4,5,6 - Для
/equipments/B
допустимые значения: 1,3,5.
Решение, которое я вижу, - добавить .../filters
конечную точку для каждой операции, которая будет возвращать фильтры с разрешенными значениями.
GET /equipments/filters
[
{
'name': 'company',
'type': integer,
'choices': [
'Company 1': 1,
'Company 2': 2,
'Company 3': 3,
]
},
{
'name': 'operator',
'type': autocomplete,
'url': /equipments/filters/operator?q={q}
}
]
Дополнительный вопрос: если это хорошее решение, где и как я могу добавить эти операции в документацию JSON-LD / Hydra?