Управление Content-Type из сервиса REST
Я работаю над службой REST на основе шаблона службы WCF REST в VS2010. Из коробки у вас может быть служба, возвращающая XML или JSON, основанная на типе Accept, указанном в запросе, но как мне добавить свой собственный формат.... Я нашел пример:
http://msdn.microsoft.com/en-us/library/ee476510.aspx
где вы проверяете заголовок Accept в методе и возвращаете Message на основе этого типа, однако мне не очень нравится реализовывать это во всех моих методах обслуживания.
Что мне действительно нравится, так это способ, которым я мог бы аннотировать (атрибут) мой DataContract с помощью форматера / сериализатора для каждого типа Content-Type, который я хочу поддерживать, и затем инфраструктура вызывать мой форматтер / сериализатор при запросе Content- Тип не поддерживается "из коробки".
Есть ли уже какие-то точки расширения в инфраструктуре службы REST WCF для этого?
Любая помощь будет принята с благодарностью TIA
Серен
1 ответ
WcfRestContrib должен быть в состоянии сделать это через средства форматирования. Он предоставляет набор встроенных средств форматирования для сообщений в формате XML, JSON, URL-кодированных форм, а также позволяет создавать собственные средства форматирования.
Встроенный webHttpBinding
в WCF на данный момент не имеет этой функциональности - она позволяет только appliation/json
а также text/xml
согласование и другие типы контента могут быть сопоставлены с этими двумя с помощью пользовательского сопоставителя типов контента.
"Атрибуты" для форматирования ответов доступны только для синдикации, где она работает немного иначе. Сервис всегда должен возвращаться SyndicationFeedFormatter
а известные типы позволяют определять несколько производных форматеров для Atom или Rss.