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();
}
}

Web API

I’m currently implementing WebAPI into my company’s external web services.  It was pretty easy to learn and add to our existing WCF web services.  I used online videos (especially PluralSight) and ASP.NET to get acquainted with Web API:

I went with MVC version 4.0 and I created methods using a routing of “Api/{controller}/{action}”

The automatic help documentation is very impressive.

I first created a sample Web API project and then copied and pasted the code into my existing web service project.  I did have to add a lot of references and install a lot of packages from NuGet but it was fairly easy to do.

I liked testing the APIs with Fiddler.  It is easy to switch back and forth between JSON and XML.