Помогите пожалуйста советом.
Суть задачи такая:
Все json ответы сервиса должны быть обёрнуты в специальный объект, если был передан специальный Accept: envelope+json
Для валидного ответа:
{ "data": { "userId": ... } }
Для ошибки:
{ "error": { "type": "...", "status": 400 } }
Если же заголовок Accept не содержит нужного значение, то всё как обычно, например для вадного ответа будет такой:
{ "userId": ... }
Сейчас я раскопал, что в ASP.NET Core существует инфраструктура OutputFormatter и в неё можно встроится написав свой, но тут получается сложность, что должна быть поддержка System.Text.Json и NewtonsoftJson, и получается что придётся дублировать их логику. А простых точек расширения для их форматтеров я что не заметил.
Вопросы:
- Если бы у вас была такая задача, в какую часть ASP.NET вы бы копали?
- Может быть у вас есть какой-то опыт расширения функционала форматтеров? Этот путь вообще допустим для моей задачи?
В качестве промежуточного результата обнаружил тот факт, что можно сделать наследника от ObjectResultExecutor, и в своей реализации просто переписывать Value по необходимости. Теперь нужно понять правильный ли это путь, и нет ли каких-то подводных камней у него.
Обсуждают сегодня