Web API with multiple post apis on a controller

I was researching how to add multiple post APIs on a controller and found a solution that seems to be working.  I found this on this post: http://e-zooka.com/mvc4-webapi-multiple-post-get-actions/

public class EnrollmentController : ApiController
{
[System.Web.Http.AcceptVerbs(“GET”, “POST”), System.Web.Http.ActionName(“MyApi1”)
public Result MyApi1([FromBody] MyObject parameter)
{
var result = new Result
{
Code = “0”,
Message = “Success”,
TimeStamp = DateTime.UtcNow.ToString()
};
return result;
}

[System.Web.Http.AcceptVerbs(“GET”, “POST”), System.Web.Http.ActionName(“MyApi2”)
public Result MyApi2([FromBody] MyObject parameter)
{
var result = new Result
{
Code = “0”,
Message = “Success”,
TimeStamp = DateTime.UtcNow.ToString()
};
return result;
}
}

public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// To handle routes like /Mobile
config.Routes.MapHttpRoute(
name: “ControllerOnly”,
routeTemplate: “Api/{controller}”
);

// Controller with ID
// To handle routes like /api/Mobile/1
config.Routes.MapHttpRoute(
name: “ControllerAndId”,
routeTemplate: “Api/{controller}/{id}”,
defaults: null,
constraints: new { id = @”^\d+$” } // Only integers
);

// Controllers with Actions
// To handle routes like /api/Mobile/actionname
config.Routes.MapHttpRoute(
name: “ControllerAndAction”,
routeTemplate: “Api/{controller}/{action}”
);

// Uncomment the following line of code to enable query support for actions with an IQueryable or IQueryable return type.
// To avoid processing unexpected or malicious queries, use the validation settings on QueryableAttribute to validate incoming queries.
// For more information, visit http://go.microsoft.com/fwlink/?LinkId=279712.
//config.EnableQuerySupport();

// To disable tracing in your application, please comment out or remove the following line of code
// For more information, refer to: http://www.asp.net/web-api
//config.EnableSystemDiagnosticsTracing();
}
}

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s