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