По моему опыту, ваш подход, начинающийся с одного шаблона запроса / ответа, а затем позже выставляющий отдельный шаблон BatchRequest / BatchResponse (который содержит массивы запросов / ответов), является лучшим подходом как в краткосрочной, так и в долгосрочной перспективе.для вашего API.
Первоначальный шаблон API, который раскрывается, должен представлять собой один запрос и ответ, просто для того, чтобы иметь простой для понимания интерфейс.Простой интерфейс упрощает изучение шаблонов API (его методов и объектов), что важно для принятия пользователем.Ваши пользователи оценят простоту, когда они сначала изучат API и попытаются просто начать работу с сервисом.Принуждение пользователей к созданию массивов запросов в исходном API не будет оценено, и это усложнит API и приведет к преждевременной оптимизации со стороны ваших коллег.
Однако ваши коллеги правы в том, что будут делать ваши пользователив конечном счете, требуется опция пакетных запросов и ответов, так как они становятся более знакомыми с API.Как вы и предлагали, ваши коллеги действительно лучше справляются с реализацией отдельного шаблона BatchRequest / BatchResponse.Реализация отдельного шаблона BatchRequest / BatchResponse является распространенным явлением, и это может быть сделано способом, который основан на и повторно использует большую часть кода при реализации шаблона запроса / ответа синглтона.Чтобы быть ясным, идея заключается в том, что вы пакетируете свои одиночные запросы от ранее.По моему опыту, идея о том, что ваш API должен запускаться и быть привязанным к шаблону массива запросов / ответов, является ненужной и необоснованной.
Теперь, поскольку я не знаю, каковы варианты использования вашего коллеги, ясобираюсь угадать, почему они хотят получить массивы с самого начала.если ваши коллеги хотят получить массивы запросов, потому что они заинтересованы в выполнении нескольких операций CRUD над несколькими объектами, то решение состоит не в том, чтобы иметь массивы запросов, а в том, чтобы отдельные запросы были привязаны к одному типу операции CRUD, и чтобы запрос принималсямассив объектов для выполнения операции, навалом.Вы не хотите заставлять пользователей выполнять индивидуальный запрос для каждого объекта, поскольку он точно не будет масштабироваться.Пакетирование лучше всего рассматривать как продвинутый метод API, используемый только тогда, когда понятны базовые шаблоны API и когда ваши пользователи хотят масштабировать свои приложения.
Тем не менее сначала представьте один шаблон запроса / ответа.и затем предоставьте необязательный шаблон пакетного запроса / пакетного ответа.Создайте единый шаблон запроса / ответа, помня о том, что в конечном итоге эти запросы будут объединены.