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?