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