.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层的解析工作,可以让客户端远程调用服务器上的类。

附:

一.关于注释的问题

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

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

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

3. 来看看效果

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

二.设置默认返回Json

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

这个返回的结果是XML的,虽然可以在请求是设置返回Json,但是有人不喜欢这样的话,就是要设置默认返回Json的话,可以这样做:

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

GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear(); 

//默认返回 json 

GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add( 

new QueryStringMapping("datatype", "json", "application/json")); 

//返回格式选择 datatype 可以替换为任何参数 

GlobalConfiguration.Configuration.Formatters.XmlFormatter.MediaTypeMappings.Add( 

new QueryStringMapping("datatype", "xml", "application/xml"));
时间: 2024-12-30 19:47:14

.NET web开发之WebApi初试水的相关文章

[Java Web] 3\WEB开发之HTML基础程序试手

1.初试: 1 <html> 2 <body> 3 <h1>My First Heading</h1> 4 <p>My first paragraph.</p> 5 </body> 6 </html> 2.标题: HTML 标题(Heading)是通过 <h1> - <h6> 等标签进行定义的.显然由大标题变为小标题.... 1 <html> 2 <body> 3

Web开发之RSET API

REST介绍 如果要说什么是REST的话,那最好先从Web(万维网)说起. 什么是Web呢?读者可以查看维基百科的词条(http://zh.wikipedia.org/zh-cn/Web),具体的我就不多说了.总之,Web是我们在互联网上最常用的服务,甚至在某些人的心中,互联网就是Web.当然,Web只是互联网的一部分而已,只是大家用的最多而已,我们访问的所有网站都是基于Web. 那么,Web和REST之间究竟有什么关系呢?我们接下来将聊聊组成Web的几大基础技术,URI(统一资源标识符,用来标

【Go web开发之revel+mgo】第11章 部署到heroku上

演示地址  http://gblog-revel.herokuapp.com/ 1.申请mongohq 关于如何在注册heroku和mongohq帐号,我在之前的blog里面有说明,http://blog.csdn.net/joveth/article/details/19999535 这里简单的说一下,还记得我们的models/dao.go文件里的NewDao方法中被注释的那一行吗? session, err := mgo.Dial("mongodb://omind:[email protec

HTML5+JS手机web开发之jQuery Mobile初涉

一.起始之语 我一直都是在PC上折腾网页的,这会儿怎么风向周边捣鼓起手机网页开发呢?原因是公司原先使用Java开发的产品,耗了不少人力财力,但是最后的效果却不怎么好.因为,Android系统一套东西,iPhone又是新的一套,折腾死人呐. 于是总监发狠,让我把手上的活都交出去,专心折腾web版的,看看最后效果如何. 加上我觊觎手机上的开发学习很久了,于是,一拍即合,搞起了手机开发方面的学习. 分享是很好的提高自身学习的方法.因为分享过程中梳理了所学,往往会有些意想不到的心得与收获.如此利人利已的

web开发之Servlet 三

昨天我们学习了Servlet的运行过程和生命周期,那么今天我们学习下Servlet中非常重要的两个类:ServletConfig  ServletContext 我们可以看到,与顶层Servlet主动关联的是ServletConfig  ServletRequest ServletResponse ,它们通过容器传递给Servlet;其中Servlet初始化时候使用ServletConfig,另外两个是请求时调用传给Servlet. 一.ServletConfig 讲解 ServletConfi

web开发之Servlet 一

因为最近在研究公司一套新的框架,发现这套框架的底层是对Struts2,Spring 封装后的WEB应用框架,而我发现如果仅仅是利用这个框架开发,确实很容易快速上手,做业务来说是没有问题的,但我觉得如果只对上层如何去用熟悉是不行,必须要学习其底层是如何玩的,而任何一套WEB应用框架的开发,肯定都是基于Servlet 对象中各个方法的生命周期来进行的,因此对Servlet的研究是有必要,虽然以前学过,但是很多原理都遗忘了,为此决定重新学习一下. 本人的开发工具和环境是:Myeclipse + Tom

Web开发之MVC框架

什么是MVC框架? 在这里我简要的说明一下,想要详细的了解MVC的小伙伴们可以上百度百科,或者找来相应的书籍,仔细研究和理解一下,但是要说明的的一点是,完全理解MVC并不是一件容易的事. MVC的全称为Model View Controller,是模型-视图-控制器的缩写,一种软件框架模式,通俗点讲,就是将应用程序的输入.处理和输出进行解耦,使M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式. 简单来说一下MVC框架的三个核心部件的内容,即Model.View和Controller.

Java Web开发之Servlet、JSP基础

有好多年不搞Java Web开发了,这几天正好国庆放假,放松之余也有兴趣回头看看Java Web开发技术的基础. 我们都知道,Servlet是Java Web开发的重要基础,但是由于Servlet开发相对繁琐,代码量庞大而且不易维护,美工无法参与界面设计开发等不足,于是就诞生了jsp.jsp是对servlet开发模型的重要升级.有了jsp,Java Web开发技术才真正被广泛使用. 一.Servlet 在Java Web开发当中,新建一个类继承(派生)自HttpServlet类即可创建一个Ser

移动WEB开发之JS内置touch事件[转]

iOS上的Safari也支持click 和mouseover等传统的交互事件,只是不推荐在iOS的浏览器应用上使用click和mouseover,因为这两个事件是为了支持鼠标点击而设计 出来的.Click事件在iOS上会有半秒左右的延迟,原因是iOS要highlight接收到click的element.而 mouseover/out等事件则会被手指的点击触发.所以,在iOS上,应当抛弃传统的交互事件模型而接受一个新的事件模型.Touch事件和更高级 的Gesture事件,能让你的网页交互起来像n