В приложении есть определенная конечная точка, над которой нужно немало поработать. Я опубликую код ниже.
Он принимает запрос POST с массивом идентификаторов в теле. Перебирает идентификаторы и запрашивает внешний API, создавая список данных ответа. Просматривает ответы и категории в каждом ответе и выполняет расчет, добавляя результат к общей переменной. В конечном итоге возвращаем результаты.
Есть некоторые требования к конечной точке, которые я не могу изменить. Он должен принимать массив идентификаторов в теле запроса, он должен асинхронно запрашивать внешний API, он должен возвращать массив данных с итоговыми значениями каждого Category_id из каждого объединенного запроса.
Что еще более важно, конечная точка должна быть безопасной, надежной, масштабируемой, доступной, ремонтопригодной и производительной. В конечную точку может быть передано любое количество идентификаторов, потенциально сотни, и для каждого идентификатора могут быть сотни (или более) категорий внутри каждого тела JSON запроса внешнего API.
Как бы вы это сделали? провести рефакторинг этой конечной точки? Я рассматриваю возможность использования асинхронных очередей заданий, но это затрудняет возврат ответа пользователю, который должен представлять собой комбинацию результатов каждого задания. Я хотел бы вернуть идентификаторы из конечной точки и предоставить потребителю конечной точки возможность опросить другую конечную точку, чтобы проверить, завершено ли задание. Любопытно услышать мысли других людей о том, как бы они подошли к этому...
Код: Выделить всё
Подробнее здесь: [url]https://stackoverflow.com/questions/78831722/combine-results-from-api-requests-and-aggregate-totals[/url]