Angenommen, es gibt eine Methode in einem Controller:
public class CustomerController : ApiController
{
[HttpGet]
public CustomerDto GetById([FromUri] int id)
{
.
.
return customerDto
}
}
Gibt es eine Möglichkeit, unterstützte Medientypen mit einem Attribut anzugeben? Zum Beispiel ist CustomerDto eine komplexe Klasse und wird nur mit JSON (application/json) serialisiert und nicht mit XML (application/xml), kann aber auch PDF (application/pdf) akzeptieren. Gibt es so etwas wie dies:
[HttpGet(Accepts.JSON, Accepts.PDF)]
oder
[HttpGet][AcceptJSON][AcceptXML]
oder
[HttpGet][Accept("application/json")][Accept("application/pdf")]
Wenn die eingehende Anfrage nicht unterstützt wurde, könnte eine Unsupported Exception / Status zurückgegeben werden.
Anmerkung - Ich möchte die XML-Serialisierung nicht vollständig entfernen, wie es global gemacht werden könnte. Stattdessen würde ich gerne definieren, was pro Route akzeptiert wird.
Verwendung - ASP.NET WebAPI RC 1 (muss aktualisiert werden) + Self Hosting