Мой формат ответа конечной точки API выглядит следующим образом:
{"api_version": "1", data={"id":"10", "customer_name":"Some Name"}
Я реализовал чертежи в своем проекте и использовал их для представления версий API и контроллера. Например: http://localhost: 8086 / v1 / Customers / get_customer_name рассматривает проект, зарегистрированный с url_prefix как / v1 / Customers, где v1 - версия, а Customers - контроллер. get_customer_name - это действие. Точно так же у меня есть / v2 / Customers / get_customer_name, функциональность которого отличается от get_customer_name из v1.
Я сейчас реализую обработку ошибок для проекта. Я планирую добавить обработчик ошибок внутри каждого проекта, а также 1 общий обработчик ошибок вне проекта. Предполагается, что любая ошибка внутри чертежа должна возвращать пользователю версию API следующим образом вместе с сообщением об ошибке:
{"api_version": "1", message="An error occurred due to some reason"}
Пока все хорошо. Я не уверен, как реализовать формат ответа обработчика ошибок для внешнего распространенного обработчика ошибок. Я не могу жестко закодировать его, чтобы указать c версию. Я хочу понять, когда вызывается обработчик ошибок из чертежа. И когда ловит общий обработчик ошибок. Соответственно, я планирую установить для формата ответа api_version внешнего обработчика ошибок соответствующее значение.