Mi chiedo se sia possibile restituire più tipi in un solo Web Api. Ad esempio, desidero che una API restituisca entrambi gli elenchi di clienti e ordini (questi due insiemi di dati possono o non possono riguardare l'uno con l'altro?In che modo l'API Web restituisce più tipi
risposta
Per tornare più tipi, è possibile avvolgere in tipo anonimo, ci sono due approcci possibili:
public HttpResponseMessage Get()
{
var listInt = new List<int>() { 1, 2 };
var listString = new List<string>() { "a", "b" };
return ControllerContext.Request
.CreateResponse(HttpStatusCode.OK, new { listInt, listString });
}
Oppure:
public object Get()
{
var listInt = new List<int>() { 1, 2 };
var listString = new List<string>() { "a", "b" };
return new { listInt, listString };
}
Ricordo anche che serializzatore XML non supporta i tipi anonimi. Quindi, è necessario assicurarsi che la richiesta dovrebbe avere intestazione:
Accept: application/json
al fine di accettare formato JSON
È necessario utilizzare il serializzatore JsonNetFormatter, poiché il serializzatore predefinito- DataContractJsonSerializer non può serializzare . tipi anonimi
public HttpResponseMessage Get()
{
List<Customer> cust = GetCustomers();
List<Products> prod= GetCustomers();
//create an anonymous type with 2 properties
var returnObject = new { customers = cust, Products= prod };
return new HttpResponseMessage<object>(returnObject , new[] { new JsonNetFormatter() });
}
si potrebbe ottenere JsonNetFormatter da HERE
im ottenere un errore sul HttpResponseMessage (e anche il JsonNetFormatter ma credo di sapere il motivo per cui sono lì) dicendo "Il tipo non generico 'System.Net.Http.HttpResponseMessage' non può essere utilizzato con argomenti tipo". Qualche idea? – Matt
Questo codice funzionerà su API Web ASP.NET beta –
- 1. isKindOfClass che restituisce NO in modo imprevisto
- 2. Rest Web service che restituisce un 404
- 3. C# restituisce diversi tipi?
- 4. Come documentare l'argomento che richiede più tipi
- 5. Come scrivere la funzione Java che restituisce i valori di più tipi di dati?
- 6. Tipo Funzione che restituisce una tupla di tipi scelti
- 7. Come documentare: rtype: per una funzione che restituisce più tipi di dati possibili?
- 8. In che modo i tipi di dattilografo toccano in vi?
- 9. In che modo A un join esterno sinistro B restituisce più righe di quelle in A?
- 10. Argomenti funzione più tipi
- 11. Più tipi MIME in Android
- 12. In che modo una funzione restituisce in base al valore?
- 13. E 'possibile fare in modo che Spring ApplicationListener ascolti per 2 o più tipi di eventi?
- 14. In che modo Reflection.Emit può assegnare tipi incompatibili?
- 15. Restituisce più valori in Java
- 16. In che modo django gestisce più utenti
- 17. In che modo Android gestisce più R.java?
- 18. In che modo gli sprite CSS velocizzano un sito web?
- 19. metodo Scala che restituisce più funzioni di filtro concatenate
- 20. GWT TypeOracle.getTypes non restituisce tutti i tipi
- 21. Errore di codifica durante l'utilizzo dell'autenticazione Devd di LAPI
- 22. In che modo: Servizio Web e gestione dei timeout del client nel servizio Web?
- 23. Query LINQ che restituisce più copie del primo risultato
- 24. C'è un modo per creare tipi nominali in TypeScript che estendono i tipi primitivi?
- 25. Restituisce diversi tipi di dati da un metodo in java?
- 26. C'è un modo per scrivere un metodo di estensione che si applica a più tipi?
- 27. Script PhantomJS che restituisce una pagina Web vuota
- 28. Spring @ExceptionHandler che gestisce più tipi di eccezioni
- 29. ASP.Net Web API Help Pagina che restituisce l'output vuoto
- 30. ASP.NET web API che restituisce XML invece di JSON
Nota: la richiesta accetta deve essere application/json, poiché il serializzatore xml risponderà con un errore, non sapendo cosa fare. – fionbio