web api :Routing in ASP.NET Web API
引
Web API 和SignalR都是在服务层。
If you are familiar with ASP.NET MVC, Web API routing is very similar to MVC routing.
The main difference is that Web API uses the HTTP method, not the URI path, to select the action.(web api和mvc路由最主要的区别是,mvc是使用URI路径来选择action的,而web api 则是使用http方法来选择action的。)
You can also use MVC-style routing in Web API. This article does not assume any knowledge of ASP.NET MVC.
参考官网:http://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-in-aspnet-web-api
1.路由表
1.1默认配置
默认的路由映射,所以,调用api的时候,必须以api开头
- routes.MapHttpRoute(
- name: "API Default",
- routeTemplate: "api/{controller}/{id}",
- defaults: new { id = RouteParameter.Optional }
- );
eg:
- /api/contacts
- /api/contacts/1
- /api/products/gizmo1
而 /contacts/1就不会成功。
1.2默认约定
默认的约定,以Get,Delete,Put,Post这些开头的方法:
- public class ProductsController : ApiController
- {
- public void GetAllProducts() { }
- public IEnumerable<Product> GetProductById(int id) { }
- public HttpResponseMessage DeleteProduct(int id){ }
- }
HTTP Method |
URI Path |
Action |
Parameter |
GET |
api/products |
GetAllProducts |
(none) |
GET |
api/products/4 |
GetProductById |
|
DELETE |
api/products/4 |
DeleteProduct |
|
POST |
api/products |
(no match) |
2.路由变量
2.1 Http方法
使用HttpGet, HttpPut, HttpPost, or HttpDelete 来进行标记方法。
也可以使用[AcceptVerbs("GET", "HEAD")]来标记多个选择。
2.2使用ActionName来路由
- routes.MapHttpRoute(
- name: "ActionApi",
- routeTemplate: "api/{controller}/{action}/{id}",
- defaults: new { id = RouteParameter.Optional }
- );
则以上的配置可以支持两种:
One is
- public class ProductsController : ApiController
- {
- [HttpGet]
- public string Details(int id);
- }
The other is:(api/products/thumbnail/id)
- public class ProductsController : ApiController
- {
- [HttpGet]
- [ActionName("Thumbnail")]
- public HttpResponseMessage GetThumbnailImage(int id);
- [HttpPost]
- [ActionName("Thumbnail")]
- public void AddThumbnailImage(int id);
- }
2.3非Action
使用[NonAction] 标记方法。
web api :Routing in ASP.NET Web API的更多相关文章
- Routing in ASP.NET Web API
Why is HttpGet required only for some actions? https://stackoverflow.com/questions/28068868/why-is-h ...
- Implement JSON Web Tokens Authentication in ASP.NET Web API and Identity 2.1 Part 3 (by TAISEER)
http://bitoftech.net/2015/02/16/implement-oauth-json-web-tokens-authentication-in-asp-net-web-api-an ...
- Routing in ASP.NET Web API和配置文件的设定读取
Routing Tables In ASP.NET Web API, a controller is a class that handles HTTP requests. The public me ...
- ASP.NET Web API 框架研究 ASP.NET Web API 路由
ASP.NET Web API 核心框架是一个独立的.抽象的消息处理管道,ASP.NET Web API有自己独立的路由系统,是消息处理管道的组成部分,其与ASP.NET路由系统有类似的设计,都能找到 ...
- 【转】Encrypt ConnectionString in Web.Config 【加密ASP.NET web.config数据库链接字串】
原文链接:https://www.codeproject.com/Tips/795135/Encrypt-ConnectionString-in-Web-Config web.config中一般会存放 ...
- Create a REST API with Attribute Routing in ASP.NET Web API 2
原文:http://www.asp.net/web-api/overview/web-api-routing-and-actions/create-a-rest-api-with-attribute- ...
- Adding the Test API in The ASP.NET Web API Help Page
1.通过NuGet引用Web API Test Client 引用玩该DLL会生成如下文件: 这里面就是我们的帮助文档界面 2.在项目属性中进行如下设置,勾选XMl文档文件,并设置路径 3.在项目的A ...
- ASP.NET Web API中的Routing(路由)
[译]Routing in ASP.NET Web API 单击此处查看原文 本文阐述了ASP.NET Web API是如何将HTTP requests路由到controllers的. 如果你对ASP ...
- ASP.NET Web API 路由对象介绍
ASP.NET Web API 路由对象介绍 前言 在ASP.NET.ASP.NET MVC和ASP.NET Web API这些框架中都会发现有路由的身影,它们的原理都差不多,只不过在不同的环境下作了 ...
随机推荐
- Swift - 推送之本地推送(UILocalNotification)
// 本地推送通知是通过实例化UILocalNotification实现的.要实现本地化推送可以在AppDelegate.swift中添加代码实现,本事例是一个当App进入后台时推送一条消息给用户. ...
- C#学习笔记---协变和逆变
http://www.cnblogs.com/alphafly/p/4048608.html 协变是指方法能从委托的返回类型派生的一个类型. 逆变之方法获取的参数可以是委托参数类型的基类.
- SQLServer内置函数
类型转换函数cast和convert --cast一般更容易使用,convert的优点是可以格式化日期和数值 select CAST('123.4' as int) --失败 select CONVE ...
- SQLServer子查询
in谓词子查询 select * from dbo.Worker where did in (select dID from DepartMent) 比较运算子查询 select * from Wor ...
- C# virtual override 和 new 的区别
一直以来我都对 virtual override 和 new 之间的区别感到疑惑不解. 特别笔试的时候特别容易考到,真的很容易弄错啊,畜生! 光看理论永远记不住,那不如写几行代码就懂了. 首先看看v ...
- 【翻译八】java-内存一致性错误
Memory Consistency Errors Memory consistency errors occur when different threads have inconsistent v ...
- Web框架之Tornado
概述 Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本.这个 Web 框架看起来有些像web.py 或者 Google 的 webapp,不过为了 ...
- C++ 基础 const放在函数末尾的意思
- c++ 的 坑真多之头文件
我发现类在做参数时,是可以不引用头文件,即不用#include"xxx.h"的,比如下面这样是没有问题的 #pragma once #include <string> ...
- 湘潭邀请赛 Hamiltonian Path
湘潭邀请赛的C题,哈密顿路径,边为有向且给定的所有边起点小于终点,怎么感觉是脑筋急转弯? 以后一定要牢记思维活跃一点,把复杂的事情尽量简单化而不是简单的事情复杂化. #include<cstdi ...