ServiceStack i zwrot strumienia

Właśnie zacząłem używać ServiceStack, który jest niesamowitą biblioteką.

Mam jednak wymóg biznesowy, w którym musimy zwrócić xml i json, gdzie xml musi mieć określony format.

Na przykład mamy istniejących klientów, którzy oczekują formatu xml:

<code><service name="service1" type="audio" .../>
</code>

tak w zasadzie kilka atrybutów.

Wiem, że ServiceStack używa pojęć DTO i używa DataContractSerializer, który zwraca elementy xml zamiast w powyższej formie z atrybutami xml.

Nadal chcę używać DTO dla żądań (przechodzących w application / xml lub application / json w nagłówku Accept) i mogę następnie utworzyć własne ciągi xml lub łańcuchy json, a następnie zwrócić je jako:

<code>string result = "....xml or json string...";
return new MemoryStream(Encoding.UTF8.GetBytes(result));
</code>

gdzie ciąg wynikowy może być ciągiem XML lub ciągiem json.

W skrzypcach zauważyłem odpowiedź Content-Type jako text / html.

Z podejściem, którego używam, czy naruszam zasady REST? Czy będą problemy z Content-Type, tak jak obecnie (text / html)?

Jeśli zastosuję to podejście, rozwiązuje to wymagania biznesowe.

Edytować

Odkryłem, że mogę zwrócić httpResult jako:

<code>return new HttpResult(
         new MemoryStream(Encoding.UTF8.GetBytes(result)), "application/xml");
</code>

co daje prawidłowy typ treści.

Czy jest to właściwy sposób, czy będę miał problemy, jeśli pójdę tą drogą?

questionAnswers(1)

yourAnswerToTheQuestion