ServiceStack y devolviendo un stream

Acabo de empezar a usar ServiceStack, que es una biblioteca increíble.

Sin embargo, tengo un requisito comercial donde debemos devolver xml y json donde el xml debe estar en un formato específico.

Por ejemplo, tenemos clientes existentes que esperan xml del formato:

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

así que básicamente un montón de atributos.

Sé que ServiceStack usa conceptos de DTO y usa el DataContractSerializer que devuelve elementos xml en lugar de en el formulario anterior con atributos xml.

Todavía quiero usar los DTO para las solicitudes (pasar application / xml o application / json en el encabezado Aceptar) y luego puedo crear mis propias cadenas xml o json y luego devolverlas como:

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

donde la cadena de resultado podría ser una cadena xml o una cadena json.

Noté en el violinista la respuesta Content-Type como texto / html.

Con el enfoque que estoy usando, ¿estoy violando algún principio de REST? ¿Habrá problemas con el tipo de contenido como está actualmente (texto / html)?

Si utilizo este enfoque, resuelve los requisitos del negocio.

Editar

Encontré que puedo devolver un httpResult como:

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

lo que da el tipo de contenido correcto.

Entonces, ¿es esta la manera correcta o tendré problemas si voy por esta ruta?

Respuestas a la pregunta(1)

Su respuesta a la pregunta