ASP.NET Web API Formatters

Вопрос:

Как мы знаем по умолчанию, в среде веб-API есть форматирующие элементы, которые могут создавать JSON или XML. Если вы хотите создавать некоторые другие типы вывода, то во многих местах, которые я читал, требуется реализовать пользовательский формат форматов, который будет делать то, что вы хотеть. Но мне нужно вернуть необработанный HTML-код из моего контроллера веб-API, и если я создам HttpResponseMessage таким образом:

 response = new HttpResponseMessage()
{
Content = new StringContent(
"<p>Hello world</p>",
Encoding.UTF8,
"text/html")
};

Затем у меня есть исходный HTML-код в моем ответе, который браузер распознает и отобразит. Мой вопрос на самом деле Почему он работает без использования какого-либо пользовательского форматирования, и в этом случае мне нужно его создать, и в котором я не должен.

Лучший ответ:

Formatters предоставляют вашему сервису гибкость для ответа на клиента с теми же данными, но в произвольном формате в зависимости от того, что попросил клиент. Если клиент запрашивает application/json, ваша служба будет использовать форматировщик JSON для ответа JSON.

Насколько я знаю, formatters применяются только в том случае, когда ваш метод напрямую возвращает объект, который будет сериализован. В вашем случае, независимо от типа носителя, который запрашивал клиент, вы возвращаете HttpResponseMessage со строкой, содержащей html-контент.

Как правило, вы хотите использовать форматировщики, если хотите, чтобы ваша служба потенциально обслуживала одни и те же данные в разных форматах в зависимости от заголовка Accept, указанного клиентом.

Оцените статью
TechArks.Ru
Добавить комментарий