Web API-Routen zur Unterstützung von GUID- und Integer-IDs
ie kann ich @ unterstützeGET
Routen für GUID und Integer? Ich erkenne, dass GUIDs nicht ideal sind, aber es ist, was es für den Moment ist. Ich möchte Unterstützung für Ganzzahlen hinzufügen, um Benutzern das Erinnern und Kommunizieren von "what @" zu erleichtersollte sei eindeutige "Schlüssel".
Beispielrouten:
testcases/9D9A691A-AE95-45A4-A423-08DD1A69D0D1
testcases/1234
MyWebApiConfig
:
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
var routes = config.Routes;
routes.MapHttpRoute("DefaultApiWithAction",
"Api/{controller}/{action}");
routes.MapHttpRoute("DefaultApiWithKey",
"Api/{controller}/{key}",
new { action = "Get" },
new { httpMethod = new HttpMethodConstraint(HttpMethod.Get), key = @"^\d+$" });
routes.MapHttpRoute("DefaultApiWithId",
"Api/{controller}/{id}",
new { action = "Get" },
new { httpMethod = new HttpMethodConstraint(HttpMethod.Get) });
routes.MapHttpRoute("DefaultApiGet",
"Api/{controller}",
new { action = "Get" },
new { httpMethod = new HttpMethodConstraint(HttpMethod.Get) });
routes.MapHttpRoute("DefaultApiPost",
"Api/{controller}",
new { action = "Post" },
new { httpMethod = new HttpMethodConstraint(HttpMethod.Post) });
}
Meine Steuerung (nur Methodensignaturen):
[RoutePrefix("Api/TestCases")]
public class TestCasesController : PlanControllerBase
{
[Route("")]
public OperationResult<IEnumerable<TestCaseDTO>> Get([FromUri] TestCaseRequest request)
[Route("{id}")]
[HttpGet]
public OperationResult<TestCaseDTO> Get(Guid id)
[Route("{key}")]
[HttpGet]
public OperationResult<TestCaseDTO> Get(int key)
...
}
Ich bekomme einInterner Serverfehle, wenn ich versuche, die Ressource mit der Ganzzahl aufzurufen. Jede Hilfe wird gebeten!