Я разрабатываю новый сервис в среде микросервисов. Это 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 без него?