WebApi:属性路由配置[Route()]
时间:2015-10-23 18:21:13
收藏:0
阅读:1043
?
原文:http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2
?
属性方式和约定方式可以混用。
?
代码片段:
启用
- public static class WebApiConfig
- {
- ????public static void Register(HttpConfiguration config)
- ????{
- ????????// Web API 配置和服务
- ????????// 将 Web API 配置为仅使用不记名令牌身份验证。
- ????????config.SuppressDefaultHostAuthentication();
- ????????config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
- ?
- ????????// Web API 路由
- ????????config.MapHttpAttributeRoutes();
- ?
- ????????config.Routes.MapHttpRoute(
- ????????????name: "DefaultApi",
- ????????????routeTemplate: "api/{controller}/{id}",
- ????????????defaults: new { id = RouteParameter.Optional}
- ????????);
- ????}
- }
?
HTTP METHOD和Route属性
- [Route("api/books")]
- [HttpPost]
- public HttpResponseMessage CreateBook(Book book) { ... }
?
前缀
- [RoutePrefix("api/books")]
- public class BooksController : ApiController
- {
- ????// GET api/books
- ????[Route("")]
- ????public IEnumerable<Book> Get() { ... }
- ?
- ????// GET api/books/5
- ????[Route("{id:int}")]
- ????public Book Get(int id) { ... }
- ?
- ????// POST api/books
- ????[Route("")]
- ????public HttpResponseMessage Post(Book book) { ... }
- }
?
约束
- [Route("users/{id:int:min(1)}")]
- public User GetUserById(int id) { ... }
?
可选参数
- public class BooksController : ApiController
- {
- ????[Route("api/books/locale/{lcid:int?}")]
- //[Route("api/books/locale/{lcid:int=1033}")]
- ????public IEnumerable<Book> GetBooksByLocale(int lcid = 1033) { ... }
- }
?
名称
[Route("api/books/{id}", Name="GetBookById")]
?
原文:http://www.cnblogs.com/pengzhen/p/4904872.html
评论(0)