ServiceStack и возврат потока
Я только начал использовать ServiceStack, который является удивительной библиотекой.
Тем не менее, у меня есть бизнес-требование, при котором мы должны возвращать XML и JSON, где XML должен быть в определенном формате.
Например, у нас есть клиенты, которые ожидают XML в формате:
<code><service name="service1" type="audio" .../> </code>
так что в основном куча атрибутов.
Я знаю, что ServiceStack использует концепции DTO и использует DataContractSerializer, который возвращает элементы xml, а не в форме выше с атрибутами xml.
Я все еще хочу использовать DTO для запросов (передавая application / xml или application / json в заголовок Accept), и затем я могу создать свои собственные строки xml или json и затем вернуть их как:
<code>string result = "....xml or json string..."; return new MemoryStream(Encoding.UTF8.GetBytes(result)); </code>
где строка результата может быть строкой xml или строкой json.
Я заметил в fiddler Content-Type ответа как text / html.
С подходом, который я использую, я нарушаю какие-либо принципы REST? Будут ли проблемы с Content-Type, как сейчас (text / html)?
Если я использую этот подход, он решает бизнес-требования.
Edit
Я обнаружил, что могу вернуть httpResult как:
<code>return new HttpResult( new MemoryStream(Encoding.UTF8.GetBytes(result)), "application/xml"); </code>
который дает правильный тип контента.
Итак, это правильный путь или у меня будут проблемы, если я пойду по этому пути?