Created
May 3, 2014 02:56
-
-
Save kamsar/41b36cbf412b81c1d75a to your computer and use it in GitHub Desktop.
Web API attribute routing sample controller
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System.Collections.Generic; | |
using System.Web.Http; | |
namespace Foo.Web.Sites.ExampleSite.Shared.Data | |
{ | |
// for more on Attribute Routing (used in this sample to create routes), see http://blogs.msdn.com/b/webdev/archive/2013/10/17/attribute-routing-in-asp-net-mvc-5.aspx | |
// the RoutePrefix is the base path to the API controller | |
[RoutePrefix("ExampleSite/api/Sample")] | |
// this defines how to perform default route lookups on methods (e.g. this routes the action to a method of the same name like asp.net MVC, and sets Get() to the default action) | |
[Route("{action=Get}")] | |
public class SampleController : ApiController | |
{ | |
// GET ExampleSite/api/Sample | |
public IEnumerable<object> Get() | |
{ | |
return new[] | |
{ | |
new { foo="foo", bar="bar"}, | |
new { foo="baz", bar="bonk" } | |
}; | |
} | |
// GET ExampleSite/api/Sample/Foos | |
public string Foos() | |
{ | |
return "hello world"; | |
} | |
// GET ExampleSite/api/Sample/5/lolcats | |
// This overrides the default route lookup scheme - you can pass params to the route that form URL segments | |
[Route("{id:int}/{boink}")] | |
public object Get(int id, string boink) | |
{ | |
return new | |
{ | |
id, boink | |
}; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment