Web API之路由浅谈

Web API的路由,是指明接口地址的方向,是照亮获取数据路上的灯塔,其重要性不言而喻。

本篇文章以vs2015为例,一步步说明路由的创建及使用,其中包括默认路由、自定义路由和特性路由。

我们创建一个新的web api项目,其初始的默认路由是这样的:

不难看出,默认路由的名称(name)是DefaultApi。路由模板(routeTemplate)是api/{controller}{id},api是固定的,{controller}匹配控制器,{id}匹配行为的参数,由defaults可以看出,id这个路由参数值可以自定义,也就是说,id值可以有或者没有。只要客户端传进来的url地址匹配该路由,就能找到对应的action并执行之。

接下来新建一个model类Product,新建一个控制器ProductsController。

我们的controller控制器内容为:

这时,我们用到的路由全是创建初期默认的路由。那么,当客户端访问进来时,路由怎么去匹配相关的action呢?这时,可以取一个巧:如果客户端是以GET请求的,但是web api的action方法没有指明http的动作(httpget/httppost等等之类的),那么路由便会去匹配以Get字符串开头命名的action方法,再去匹配请求参数相同的action方法,其他诸如post/delete/put等请求都是相同的原理。

就拿GetAllProducts()这个action方法举例。

1、浏览器输入http://localhost:8026/api/products

2、路由匹配到GetAllProducts方法

是不是很简单!api是固定的,products是控制器名称,url后面没有跟参数,而且是Get到后台的,所以路由就自动匹配到了。

时间: 2024-07-28 13:49:47

Web API之路由浅谈的相关文章

Web Api 的 路由机制

ASP.NET Web API 是一种框架,用于轻松构建可以访问多种客户端(包括浏览器和移动设备)的 HTTP 服务. ASP.NET Web API 是一种用于在 .NET Framework 上构建 RESTful 应用程序的理想平台. 所以我们要想学习web api 就要去了解它的路由机制.MVC和web api的路由机制的主要区别是web api 使用的是http 方法而不是url 的路径.本文就演示一下web api 是怎样在controller 里映射 http 请求的. web a

Web Service进阶(七)浅谈SOAP Webservice和RESTful Webservice

浅谈SOAP Webservice和RESTful Webservice REST是一种架构风格,其核心是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩性.REST提出设计概念和准则为: 1.网络上的所有事物都可以被抽象为资源(resource) 2.每一个资源都有唯一的资源标识(resource identifier),对资源的操作不会改变这些标识 3.所有的操作都是无状态的 REST简化开发,其架构遵循CRUD原则,该原则告诉我们对于资源(包括网络资源

2.4使用属性在 ASP.NET Web API 2 路由创建一个 REST API

Web API 2 支持一种新型的路由,称为属性路由.属性路由的一般概述,请参阅属性路由 Web API 2 中.在本教程中,您将使用属性路由创建一个 REST API 集合的书.API 将支持以下操作 ︰ 行动 URI 的示例 得到的所有书的列表. / api/书 得到一本书的 id. /api/books/1 获得一本书的详细信息. /api/books/1/details 按流派获得书籍的列表. /api/books/fantasy 按出版日期获取书籍的列表. /api/books/dat

[翻译]ASP.NET Web API的路由

原文:Routing in ASP.NET Web API 在我们新建一个Web API项目时,会在App_Start文件夹下的WebApiConfig.cs中定义一个默认路由: config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); 在默认路由中加

ASP.NET Web API编程——路由

路由过程大致分为三个阶段: 1)请求URI匹配已存在路由模板 2)选择控制器 3)选择操作 1匹配已存在的路由模板 路由模板 在WebApiConfig.Register方法中定义路由,例如模板默认生成的路由为: config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Opti

从Angular2路由引发的前后端路由浅谈

笔者的学习进度比较慢,直到两年以前写的网站都还是以服务端为主导的,即网站的所有视图都由服务器视图模板来渲染,笔者使用的是 DotNet MVC,开发套路就是在Controller里面写Action,在Views里写对应的Action.cshtml,使用ajax发起请求已经是比较前端的事情了.这种时候由于DotNet MVC框架继承的微软风格的懒人模式,甚至不需要去知道其路由是如何实现的,给人一种感觉是只要在浏览器里敲进去Controller名与Action名,就访问到视图了. 后来笔者开始使用n

从Windows API 到 MFC浅谈

上一篇<一个Demo初识MFC>用一个例程带入对MFC的初探,本篇紧接着上篇,首先对代码进行讲解,然后继续向前进. <一个Demo初识MFC>代码解析 概念一览: MFC提供数百个类,最重要的.也是编写任何VC++应用程序都必不可少的两个类 CWinApp 和 CFrameWnd ,这两个类是编写复杂庞大应用程序的基石. 封装特性:构成MFC框架的是MFC类库而MFC类库又是C++的一个类库.这些类封装WIN32应用程序编程接口,OLE(Object Link Embed 对象链接

Spring+Hibernate+SQL Server之Web开发环境设置浅谈(一)

一.构建开发环境 此示例中的开发环境由Eclipse3.2和MyEclipse组成,下面仅简单介绍系统开发中需要的各种框架和JDBC驱动类包在Eclipse构建路径中的设置. 1.添加Spring环境 示例主体框架采用Spring实现网站的MVC模式.为提供对Spring框架的支持,必须在Eclipse的构建路径中添加Spring框架的类库.具体添加步骤如下: 1.1.在工程名称上右击,选择"构建路径"/"添加库"命令,在弹出的"添加库"对话框中

WEB安全之Token浅谈

Token,就是令牌,最大的特点就是随机性,不可预测.一般黑客或软件无法猜测出来. 那么,Token有什么作用?又是什么原理呢? Token一般用在两个地方——防止表单重复提交.anti csrf攻击(跨站点请求伪造). 两者在原理上都是通过session token来实现的.当客户端请求页面时,服务器会生成一个随机数Token,并且将Token放置到session当中,然后将Token发给客户端(一般通过构造hidden表单).下次客户端提交请求时,Token会随着表单一起提交到服务器端. 然