Web API sembra essere adatto solo per i casi d'uso standard. Ma voglio fare un routing più complesso ma non riesco a trovare la documentazione per il routing complesso. Se ho più controller, i percorsi diventano sempre più complicati.ASP.NET 4 MVC Web API: documentazione per instradamento complesso
Posso definire più parametri opzionali con dipendenze? Ti piace questa:
/api/document/{par1}/{par2}
par1 & par2 dovrebbe essere facoltativo, ma par2 dovrebbero essere abbinati solo se par1 è presente.
E i parametri ricorsivi sono possibili?
/api/documents/characteristics/{round/green/red-dots}
/api/documents/characteristics/{square/yellow}
/api/documents/characteristics/{square/yellow/flat}
/api/documents/characteristics/{square/yellow/flat/...}
Esiste una documentazione dettagliata per il routing dell'API Web? Il tutorial di microsoft è troppo semplice ... Ho bisogno di ulteriori informazioni sul routing.
Ho due controller e qualche problema perché due routing sono abbastanza simili, quindi viene presa la rotta sbagliata. Posso usare [Azione] -Attributo come soluzione alternativa, ma non mi sembra giusto ... Devo anche considerare l'ordine dei percorsi. Questo è logico ma non viene menzionato da nessuna parte. La web API è solo per le semplici pause?
Modifica: ho provato questo:
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{mandant}/documents/{id}",
defaults: new { controller = "documents", id = RouteParameter.Optional }
);
//routes.MapHttpRoute(
// name: "DefaultApiWithAction",
// routeTemplate: "api/{mandant}/documents/{id}/{action}",
// defaults: new { controller = "documents" }
// );
Ho due metodi:
[AcceptVerbs("get")]
public HttpResponseMessage Get(int id)
[ActionName("file")]
[AcceptVerbs("get")]
public HttpResponseMessage filedownload(int id)
ora ho il problema, il file-azione viene attivata anche se io commenta il secondo percorso e il normale metodo di acquisizione del documento specifico non viene attivato perché più azioni ... Ho provato l'attributo [NoAction] ma questo i s non funziona ... Ma perché il metodo file verrà attivato se non vi è alcuna azione nel modello di percorso? (O se la seconda rotta è attiva, perché il normale metodo get-document non verrà attivato se non c'è azione nell'url ....) I la mia soluzione corrente è impostare un'azione predefinita per tutti gli altri metodi, ma questa non è una buona soluzione.
Impostazione del regolatore statico di default dovrebbe gestire i conflitti di percorso. Il fatto che tu possa usare i vincoli è nuovo per me. Grazie. Una buona documentazione Microsoft per il routing Web API sarebbe ottima. Ho anche scoperto che puoi usare il * come parametro catch-all come questo {* param} ma deve essere alla fine dell'URL. – user437899
Ho trovato questo documento generico per il routing di asp.net: http://msdn.microsoft.com/en-us/library/cc668201.aspx – user437899