前提:

最近,有不少同学又问到,Aries里如何提供WebAPI接口?

针对这个问题,今天给顺路写个教程,其实呢,很简单的。

方式一:直接用WebService提供接口。

用这种方式,直接添加接口就可以了,Aries只是默认处理了.html后缀的请求。对于WS的asmx后缀是没有影响的,所以传统怎么添加就怎么添加。

方式二:单独用Taurus.MVC写一个接口项目。

用这种方式,就是把接口独立成一个项目,然后通过IIS部署成子应用程序就可以了。

只是部署成子应用程序的时候,需要注意一下子目录和根目录的web.config,出现重复的只能留根目录的那个。

(一般都会建议用户用这种方式,好处是可以在IIS里学会一下怎么部署子应用程序。)

方式三:在Aries引入Taurus.MVC即可。

这个方式,其实也很简单,下面介绍一下简单的部署:

1、引用Taurus.MVC用于写WebAPI:

在Web.UI项目添加引用Taurus.Core.dll(可以在Nuget上引用,也可以引用源码项目再引用项目)

2、配置Taurus.MVC的两个必备项:

A、在HttpModule中添加URL拦截。

//这是原来有的:
<add name="Aries.Core" type="Aries.Core.UrlRewrite,Aries.Core" />
//这是新添加的:
<add name="Taurus.Core" type="Taurus.Core.UrlRewrite,Taurus.Core"/>

B、在AppSetting中设置路径模式:

<!--配置模式【值为0,1或2】[默认为1]
值为0:匹配{Action}/{Para}
值为1:匹配{Controller}/{Action}/{Para}
值为2:匹配{Module}/{Controller}/{Action}/{Para}-->
<add key="Taurus.RouteMode" value=""/>

C、在AppSetting中设置接口代码所在的项目:

<!--指定控制器所在的项目(Dll)名称(可改,项目编绎的dll叫什么名就写什么)
<add key="Taurus.Controllers" value="Taurus.Controllers"/>-->

如果是用Nuget上引用的,默认都会有上面的两个,其它默认生的,可以注释掉。

3、开始写应用接口代码:

接口代码写在哪里呢?放在哪个项目都可以,只要上面C点的配置指向就可以了,如果接口代码分散在多个项目中,配置的value可以用“逗号”分隔。

按Taurus.MVC的方式写接口,继承自Taurus.Core.Controller即可:

如:

  /// <summary>
/// API 接口
/// </summary>
public class APIController : Taurus.Core.Controller
{
public void Hello()
{
Write("hello Controllers.API");
}
}

接口访问:http://.../api/hello

总结说明:

Aries中默认处理的是.html后缀。

Taurus默认处理的是无后缀。

所以两者并无冲突,直接引用,加配置就可以了,没你想的复杂。

ASP.NET Aries 高级开发教程:如何写WebAPI接口的更多相关文章

  1. ASP.NET Aries 高级开发教程:Excel导入之代码编写(番外篇)

    前言: 以许框架提供的导入配置功能,已经能解决95%以上的导入情况,但有些情况总归还是得代码来解决. 本篇介绍与导入相关的代码. 1.前端追加导入时Post的参数: var grid = new AR ...

  2. ASP.NET Aries 高级开发教程:Excel导入之单表配置(上)

    前言: 随着ASP.NET Aries的普及,刚好也有点闲空,赶紧把Excel导入功能的教程补上. Excel导入功能,分为四篇:单表配置(上).多表高级配置(中).配置规则(下).代码编写(番外篇) ...

  3. ASP.NET Aries 高级开发教程:主题样式及多语言(标签化控制)

    前言: 最新ASP.NET Aries升级到V5.2.0以上之后,之前的样式和多语言机制,有了重大的升级机制,这篇就简单介绍一下. 1.控制开关 在配置维护那里,新增了两个控制项: 2.如何添加主题 ...

  4. ASP.NET Aries 高级开发教程:使用存储过程(番外篇)

    前言: 发现这个问题,有不少人提起过,所以就简单写成文章吧. 接下来看如何在Aries 框架中使用存储过程,整体步骤和绑定普通视图差不多. 步骤一:新建一个空视图. 可以在SqlCode管理中,创建一 ...

  5. ASP.NET Aries 高级开发教程:Excel导入之多表高级导入配置(中)

    前言: 在面对Excel的各种复杂导入情况中,多表导入是很常见的情景. 今天就来写一下多表导入是如何配置的. 1.自定义导入模板 怎么自定义: 其实就是自己新建一个Excel了,把列头都写好. 不过有 ...

  6. ASP.NET Aries 高级开发教程:Excel导入配置之规则说明(下)

    前言: 前面两篇都是大体介绍流程,有一些配置细节,没有细说,这里用一篇补上. 1.Excel配置项 起始行索引.列头跨行数: 对于自定义的Excel导入模板(有时候模板是由客户提供,模板的规则很乱) ...

  7. ASP.NET Aries 高级开发教程:行内编辑事件怎么新增数据到后台(番外篇)

    前提: 今天又网友又提出了一个问题,说行内编辑保存之前,怎么新增一些数据提交到后台? 对方说看了源码,也没找到怎么处理,这里就写文给解答一下. 解答: 于是我看了一眼源码,只能说你没找到地方: 第12 ...

  8. ASP.NET Aries 高级开发教程:表单检测字段是否已存(番外篇)

    前言: 昨天刚好有人问了这个问题,因此就针对这个问题,补上一篇吧. 正文: 如图:在用户编辑列表中,用户名是会自动检测是否已存在的. 具体对应的Html内容如下: <label><e ...

  9. ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑

    前言: 为了赶进度,周末也写文了! 前几篇讲完查询框和工具栏,这节讲表格数据相关的操作. 先看一下列表: 接下来我们有很多事情可以做. 1:格式化 - 键值的翻译 对于“启用”列,已经配置了格式化 # ...

随机推荐

  1. 百万年薪python之路 -- 函数初始练习

    1.整理函数相关知识点 2.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者. def func(lst): lst = lst[1::2] return l ...

  2. 记录面试龙腾简合-java开发工程师经历

    /** * ############ * 变强是会掉光头发的!现在的头发还是很茂盛,是该开心还是难过呢.. * ############ * / 总结下近期面试龙腾简合-java开发岗的经历.附上笔试 ...

  3. Java基础(43)Queue队列

    Collection接口的第三个子接口是Queue接口,而Queue接口的子接口又是Deque接口和BlockingQueue接口. 实现了Deque接口的类有:ArrayDeque类.Concurr ...

  4. Bran的内核开发教程(bkerndev)-07 中断描述符表(IDT)

    中断描述符表(IDT)   中断描述符表(IDT)用于告诉处理器调用哪个中断服务程序(ISR)来处理异常或汇编中的"int"指令.每当设备完成请求并需要服务事, 中断请求也会调用I ...

  5. js如何展示上传的图片

    前言:本文章主要讲的是上传的图片如何展示在页面上. 一般来说,我们会先将本地图片上传到服务器,上传成功后,由后台返回图片的网络地址再在前端显示.但是,我今天讲的是不通过前面说的过程,而是直接使用js将 ...

  6. Python爬虫常用小技巧之设置代理IP

    设置代理IP的原因 我们在使用Python爬虫爬取一个网站时,通常会频繁访问该网站.假如一个网站它会检测某一段时间某个IP的访问次数,如果访问次数过多,它会禁止你的访问.所以你可以设置一些代理服务器来 ...

  7. RTKLib的Manual解读

    Key-word: integer ambiguity resolution :整周模糊度解算 navigation:导航 Kinematic:动态,RTK的K rover:漫游 validation ...

  8. 学习笔记64_k邻近算法

    1 .假定已知数据的各个属性值,以及其类型,例如: 电影名称 打斗镜头 接吻镜头 电影类别 m1 3 104 爱情片 m2 2 100 爱情片 m3 1 81 爱情片 m4 2 90 爱情片 w1 1 ...

  9. Nginx篇--最初级用法web

    最近很久都没有写博客了,一来主要是时间不够每天回到家都接近晚上11点了,但是以后每天还是保证一篇随笔.好用来整理总结自己的知识. web服务器很有多例如:Apache nginx tengine li ...

  10. [BZOJ4310] 跳蚤 SAM || SA

    没有代码的. 传送门 先二分出第 \(mid\) 大的字串 \(s\),然后从后往前切割,每次大于 \(s\) 了就不行. 涉及到的操作:求第 \(mid\) 大子串:比较两个字串(求 \(lcp\) ...