So einige teste ich meine mit Postman
Routing und ich kann nicht scheinen, diesen Aufruf zu erhalten, gehen Sie durch:Web Api Optionale Parameter in der Mitte mit dem Attribut Routing
API Funktion
[RoutePrefix("api/Employees")]
public class CallsController : ApiController
{
[HttpGet]
[Route("{id:int?}/Calls/{callId:int?}")]
public async Task<ApiResponse<object>> GetCall(int? id = null, int? callId = null)
{
var testRetrieve = id;
var testRetrieve2 = callId;
throw new NotImplementedException();
}
}
Postman Anfragen
http://localhost:61941/api/Employees/Calls FUNKTIONIERT NICHT
Fehler:
{
"Message": "No HTTP resource was found that matches the request URI 'http://localhost:61941/api/Employees/Calls'.",
"MessageDetail": "No action was found on the controller 'Employees' that matches the request."
}
http://localhost:61941/api/Employees/1/Calls WORKS
http://localhost:61941/api/Employees/1/Calls/1
Jede Idee funktioniert, warum ich nicht ein optionales zwischen meinem Präfix und dem benutzerdefinierten Route verwenden kann? Ich habe versucht, sie in eine benutzerdefinierte Route zu kombinieren, und das ändert nichts, jedes Mal, wenn ich versuche, die ID auszusortieren, verursacht es Probleme.
Während das als separate Funktion funktioniert, ich bin auf der Suche alle 3 einzukapseln diese potentiellen Aufrufe unter 1 funktionieren, wenn ich das optionale Routing-Recht verstehe, sollte es möglich sein. – tokyo0709