У меня есть следующая упрощенная структура моего API-ресурса под названием «Задача»:
Task:
id: int
type: enum
status: enum
input: json
output: json
Вот форма полей ввода и вывода может отличаться, и это зависит от значения в столбце типа.
Т.е. на POST /tasks
для разных значений столбца 'type', я ожидаю и проверяю разные значения для столбца 'input'.
Поскольку я не хочу, чтобы некоторые поля в теле запроса требовались только взависит от значения атрибута 'type'. Я хочу разделить запросы для каждого типа по URL.Что я имею в виду: например, для запроса type = 'type-a' будет 'POST / tasks / type-a' с собственными правилами проверки для запроса типа 'type-b' будет 'POST / tasks / type-b'с другими правилами проверки.
Проблема в том, что я не уверен, что это концептуально соответствует архитектуре REST, потому что тогда у меня будет несколько запросов' POST 'и только один запрос' GET 'для одного и того же ресурса.Решением этой проблемы является создание отдельных запросов «GET / tasks / {type}» для каждого типа.Таким образом, для клиента каждая задача со своим типом будет отдельным ресурсом.Но это также заставляет меня сомневаться, потому что внутренне это тот же ресурс с общими идентификаторами.