你的位置:首页 > ASP.net教程

[ASP.net教程].NET web开发之WebApi初试水


前几天看了.NET的EF(Entity Framework),发现居然有这么先进的东西,只要操作几个类就可以完成数据库的增删查改,而且可以用数据库直接导出类(DB First)、也可以用类来生成数据库(Code First),简直太先进了。

    之前用EF做一个API服务的网站,每次要添加一条方法就要在View来解析传来的QueryString,然后调用Controller 来执行对数据库的增删查改。其实之前就一直都是听说过WebAPI,虽然一直没用过。今天抽空查了一下,完全符合我的应用需求——ASP.NET Web API 是一种框架,用于轻松构建可以被多种客户端(包括浏览器和移动设备)访问的 HTTP 服务,类似于各个大厂的开放接口。

  • 准备材料:

VS 2015 社区版 (安装了Web开发工具)

  • 基本步骤

基本按照向导来就行

选择WebAPI,然后稍等一会VS会帮你创建一个自带例程的工程

我们选择Controllers文件夹,右键选择添加“控制器”DefaultController ,选择一个WebAPI 空控制器

添加如下代码

public class DefaultController : ApiController  {    /// <summary>    /// 设置一个对象    /// </summary>    /// <param name="aa">A</param>    /// <param name="bb">B</param>    /// <returns></returns>    [HttpGet]    public Exception Set(string aa, int bb=0)    {      return new Exception(aa+bb);    }    /// <summary>    /// 获取一个值    /// </summary>    /// <returns>浮点</returns>    public float Get()    {      return 2;    }  }

    然后我们Ctrl+F5运行试试,额,我们得到一个这样的主页。好像什么都没有,莫方。点击左上角的“API”就可以按到所有的API列表了,API和控制器一般是一一对应的。可以在最后找到我们写的一个类和里面的2个函数。这样简直太方便了了,省去了我之前View层的解析工作,可以让客户端远程调用服务器上的类。

clip_image002[12]

clip_image004[1]

附:

一.关于注释的问题

你看我们刚刚明明写了Description为什么用空的呢?这个Help页面肯定是有这个功能的。要打开这个功能还要进行一下几个操作:

1. 生成
调出项目属性-“生成”,把A这里给勾上(勾上这个的哈,如果你的类或方法要是没有注释,就好有提醒,不喜欢的话就在B出填上1591)

clip_image006

2. 让HelpPage读取
定位到Areas/HelpPage/App_Start/HelpPageConfig.cs,把Register方法的前两句注释去掉,在后面的路径填上你的

3. 来看看效果

有了这个帮助页面,就不用给前台写单独的文档了,大家都明白!

clip_image010

二.设置默认返回Json

说了半年还么看看调用的效果,上图 clip_image012

这个返回的结果是

定位到App_Start/WebApiConfig.cs 的Register方法,添加一下代码即可

GlobalConfiguration.Configuration.Formatters.//默认返回 json GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add( new QueryStringMapping("datatype", "json", "application/json")); //返回格式选择 datatype 可以替换为任何参数 GlobalConfiguration.Configuration.Formatters.new QueryStringMapping("datatype", "", "application/"));