Сценарий: когда фронтенд вызывает API, мы хотим, чтобы бэкенд возвращал унифицированный интерфейс модели JSON, а данные, возвращаемые разными интерфейсами, упакованы в поле данных унифицированного интерфейса.
Первоначальный подход заключался в том, чтобы вернуть один и тот же объект модели для всех настроек интерфейса, что было возможно, но это было довольно многословно.
В ASP.NET WebAPI, полном HTTP-запросе, блок-схема выглядит следующим образом:
Моё собственное понимание MessageHandlers — это промежуточное программное обеспечение в ASP.NET Core.
Например:
Оказывается, он возвращает json контент:
Мы хотели бы вернуть следующий формат:
{"success":true,"message":"ok","data":["value1","itsvse.com"]} Все модели возврата интерфейса содержат поля, такие как успех, сообщение и т.д.
Модель единой сущности ответа
Создайте новый объект ApiHandler со следующим кодом:
Зарегистрируйте пользовательский MessageHandlers в конфигурационном файле WebApiConfig с следующим кодом:
Используйте стандартный контроллер ValuesController в новом проекте и измените его следующим образом:
Попробуйте воспользоваться нашим интерфейсом API, визуализация выглядит следующим образом:
(Конец)
|