Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Web API routing constraint Patch missing in HttpMethod

I am building some restful api using .net Web API V1.

We are trying to define some routing for the web api. I am having some issue in defining the route for 'Put' and 'patch'.

They have the same URL and the only different is in the HttpMethod. In the HttpMethod, there is no support for Patch http://msdn.microsoft.com/en-us/library/system.net.http.httpmethod(v=vs.118).aspx

config.Routes.MapHttpRoute(
    "UpdateCustomer",
    "api/customers/id/{id}",
    new {controller = "Customers", action = "UpdateCustomer"},
    new {id = @"\d+", httpMethod = new HttpMethodConstraint(HttpMethod.Put)}
);

config.Routes.MapHttpRoute(
    "PatchCustomer",
    "api/customers/id/{id}",
     new {controller = "Customers", action = "PatchCustomer"},
     new {id = @"\d+", httpMethod = new HttpMethodConstraint(HttpMethod.**Patch**)}
);
like image 930
Stay Foolish Avatar asked May 12 '14 01:05

Stay Foolish


1 Answers

EDIT: Update to the latest version of WebAPI currently 5.2.7 (https://www.nuget.org/packages/Microsoft.AspNet.WebApi/)

ORIGINAL:

If you cannot use instead:

new HttpMethod("PATCH")

See the following example use in Web API source code

https://github.com/aspnetwebstack/aspnetwebstack/blob/master/src/System.Web.Http/HttpPatchAttribute.cs

like image 56
Yishai Galatzer Avatar answered Nov 18 '22 14:11

Yishai Galatzer