Я разрабатываю новый сервис в среде микросервисов. Это REST сервис. Для простоты предположим, что путь: / historyBooks
И метод POST для этого пути создает новую книгу истории.
Давайте предположим, что книга по истории охватывает одну или несколько эпох в истории.
Для краткости предположим, что у нас есть только следующие эпохи человеческой истории:
- древний
- Пост Классический
- Современный
В моем коде я хотел бы представить их в enum.
Тело метода (полезная нагрузка) имеет формат JSON и должно содержать имя поля eras. Это поле представляет собой список eraзначений, которые охватывает эта книга.
Тело может выглядеть так:
{
"name": "From the cave to Einstein - a brief history review",
"author": "Foo Bar",
"eras": ["Ancient", "Post Classical", "Modern"]
}
В этом конкретном сервисе бизнес-логика:
если во входных данных не указано ни одного периода, считается, что эта книга охватывает все периоды.
В обзоре API было предложено:
включить другое значение, ALLдля enrasum, чтобы явно указать, что все эры покрыты.
Я думаю, что у него есть свои плюсы и минусы.
Плюсы:
Явный ввод
Минусы:
Если в списке указаны два пункта, скажем ALLи Ancient- что будет взято из приложения? Я думаю, это ALLдолжно переопределить другие значения, но это новая бизнес-логика.
Если я выполню запрос для книг, которые охватывают определенные эпохи, как бы я представлял книги, которые охватывают все эпохи? Если ALLтакже используются для вывода ( с использованием той же логики), то это ответственность потребителя интерпретировать , ALLкак ["Ancient", "Post Classical", "Modern"].
Мой вопрос
Я думаю, что наличие нового ALLвызывает больше путаницы, чем отсутствие его вообще.
Что вы думаете? Вы бы добавили это ALLзначение или оставили бы свой API без него?