ServiceStack und Rückgabe eines Streams

Ich habe gerade angefangen, ServiceStack zu verwenden, das eine erstaunliche Bibliothek ist.

Ich habe jedoch eine Geschäftsanforderung, bei der wir xml und json zurückgeben müssen, wobei die xml in einem bestimmten Format vorliegen muss.

Zum Beispiel haben wir bestehende Kunden, die XML des Formats erwarten:

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

also im Grunde eine Reihe von Attributen.

Ich weiß, dass ServiceStack Konzepte von DTOs verwendet und den DataContractSerializer verwendet, der XML-Elemente zurückgibt und nicht in der obigen Form mit XML-Attributen.

Ich möchte weiterhin die DTOs für Anforderungen verwenden (Übergabe von application / xml oder application / json im Accept-Header) und kann dann meine eigenen xml- oder json-Zeichenfolgen erstellen und diese dann zurückgeben als:

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

Dabei kann die Ergebniszeichenfolge eine XML-Zeichenfolge oder eine JSON-Zeichenfolge sein.

Ich habe in fiddler die Antwort Content-Type als text / html bemerkt.

Verstoße ich bei meinem Ansatz gegen REST-Prinzipien? Wird es Probleme mit dem aktuellen Inhaltstyp geben (text / html)?

Wenn ich diesen Ansatz verwende, werden die geschäftlichen Anforderungen gelöst.

Bearbeiten

Ich habe festgestellt, dass ich ein httpResult als zurückgeben kann:

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

was den richtigen Inhaltstyp ergibt.

Also, ist das der richtige Weg oder werde ich Probleme haben, wenn ich diesen Weg gehe?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage