Всем привет! У меня возникла необходимость поковыряться во внутренностях ASP.NET Core.

Помогите пожалуйста советом.

Суть задачи такая:
Все json ответы сервиса должны быть обёрнуты в специальный объект, если был передан специальный Accept: envelope+json
Для валидного ответа:
{ "data": { "userId": ... } }
Для ошибки:
{ "error": { "type": "...", "status": 400 } }
Если же заголовок Accept не содержит нужного значение, то всё как обычно, например для вадного ответа будет такой:
{ "userId": ... }

Сейчас я раскопал, что в ASP.NET Core существует инфраструктура OutputFormatter и в неё можно встроится написав свой, но тут получается сложность, что должна быть поддержка System.Text.Json и NewtonsoftJson, и получается что придётся дублировать их логику. А простых точек расширения для их форматтеров я что не заметил.

Вопросы:
- Если бы у вас была такая задача, в какую часть ASP.NET вы бы копали?
- Может быть у вас есть какой-то опыт расширения функционала форматтеров? Этот путь вообще допустим для моей задачи?

1 ответов

14 просмотров
Sergey-Rubtsov Автор вопроса

В качестве промежуточного результата обнаружил тот факт, что можно сделать наследника от ObjectResultExecutor, и в своей реализации просто переписывать Value по необходимости. Теперь нужно понять правильный ли это путь, и нет ли каких-то подводных камней у него.

Похожие вопросы

Обсуждают сегодня

Так а кто может спарсить всех участников чата? Идишники
Magic
18
да пофиг на капчу зашел в чат и молчишь при этом ты нонейм? пошел вон
Magic
17
Как удалить health check в Consul? Казалось бы, это должно быть не сложно, но я не могу найти в документации ничего про это, только про добавление service с health check "в н...
Roman
2
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
13
Privet! Mozhet jesti ideji - nemogu sdelatj upload backup s filestore cerez WEB. Fail okolo 450mb, eto mozhet bitj prichinoi? Nemogu ponjatj..kak zagruzitj backup... Poluchaju...
Matiss 🤘 Black Oak IT 🌳 Batumi 🌴 Latvija
5
А кто знает в тейлоре до сих пор есть конфликты слагов или поправили уже?
Black Cat
5
Нужно магазин с тильды на опен кат перенести Есть кто умеет? В лс
Magic
8
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
Я хочу запустить свой проект в тг. Что-то между пирамидой и майнилкой. Еще подобного ничего не было. Уникальная идея. Нужен именно не бот, а приложение. С ввод, выводом тон...
Павел А.
6
Я колись ставив гуглу антиспам 3.0, може і норм, але мені не дуже зайшло. Теж думав тиждень, що його і куди. Зупинився на трех варіантах відразу всі три і включив 1. Перевір...
𝓔𝓾𝓰𝓮𝓷𝓮𝓥 J
2
Карта сайта