Кто-нибудь использовал FluentValidation в сочетании с Refit Client?
В рамках системы, над которой я работаю, я обращаюсь к различным службам REST и хотел бы использовать FluentValidation для единообразной проверки типизированных ответов.
Очевидно, я мог бы вручную проверять после каждого вызова встроенного клиента Refit, но мне было интересно, есть ли какая-либо возможность для автоматического поиска соответствующих валидаторов и их вызова.
Думаю, я смотрю на что-то похожее на шаблон поведения проверки в Mediatr.
Пара мыслей, которые у меня были:
1. Украсьте каждый клиентский интерфейс проверяющей оболочкой
Это потребовало бы использования контейнера IoC, который поддерживает оформление, и означало бы, что мне пришлось бы создать реализацию каждого клиентского интерфейса, который затем проверял бы ответы, возвращаемые после переоснащения.
2. Добавьте проверяющий DelegatingHandler в конвейер.
Это, вероятно, приведет к необходимости десериализовать содержимое — выполнить проверку — и затем вернуть ответ следующему обработчику в цепочке. Это, вероятно, нормально, когда контент небольшой...
3. Используйте собственный проверяющий JsonConverter
Здесь я бы обернул преобразователь Json.Net и в Deserialize выполнил проверку.
Или есть какая-то функция Refit, которую я пропустил, которая могла бы помочь с этим, или то, что я предлагаю, просто кажется сумасшедшим?!
Спасибо,
Ник.
NewtonsoftJsonContentSerializer
, но также выполняет вашу проверку, а затем возвращает проверенный десериализованный объект. Я бы ничего не делал вDelegatingHandler
, так как это было раньше, например. код ответа проверяется - person canton7   schedule 08.01.2021