.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=)
{
return new Exception(aa+bb);
} /// <summary>
/// 获取一个值
/// </summary>
/// <returns>浮点</returns>
public float Get()
{
return ;
}
}
然后我们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"));
.NET web开发之WebApi初试水的更多相关文章
- Vim下的Web开发之html,CSS,javascript插件
Vim下的Web开发之html,CSS,javascript插件 HTML 下载HTML.zip 解压HTML.zip,然后将里面的所有文件copy到C:\Program Files\Vim\vi ...
- Web开发之Tomcat&Servlet
<!doctype html>01 - JavaEE - Tomcat&Servlet figure:first-child { margin-top: -20px; } #wri ...
- 移动web开发之rem适配布局
移动web开发之rem适配布局 方案: 页面布局文字能否随着屏幕大小变化而变化 流式布局和flex布局主要针对于宽度布局,那高度如何布局? 怎样让屏幕发生变化的时候元素高度和宽度等比例缩放? 1. r ...
- .NET Web开发之.NET MVC框架
摘要:MVC是一种架构设计模式,该模式主要应用于图形化用户界面(GUI)应用程序.那么什么是MVC?MVC由三部分组成:Model(模型).View(视图)及Controller(控制器). MVC概 ...
- HTML5+JS手机web开发之jQuery Mobile初涉
一.起始之语 我一直都是在PC上折腾网页的,这会儿怎么风向周边捣鼓起手机网页开发呢?原因是公司原先使用Java开发的产品,耗了不少人力财力,但是最后的效果却不怎么好.因为,Android系统一套东西, ...
- Web开发之Cookie and Session
会话 什么是会话? 简单说:用户开一个浏览器,点击多个超链接,访问服务器的多个web资源,然后关闭浏览器,整个过程就称之为一个会话. 会话过程要解决什么问题 每个用户在使用浏览器与服务器进行会话的过程 ...
- Web开发之response
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象. 我们要获取客户机提交过来的数据,只需要找request对象就行 ...
- vert.x学习(三),Web开发之Thymeleaf模板的使用
在vert.x中使用Thymeleaf模板,需要引入vertx-web-templ-thymeleaf依赖.pom.xml文件如下 <?xml version="1.0" e ...
- [Java Web] 3、WEB开发之HTML基础程序试手
1.初试: <html> <body> <h1>My First Heading</h1> <p>My first paragraph.&l ...
随机推荐
- 手把手教你调试Linux C++ 代码(一步到位包含静态库和动态库调试)
手把手教你调试Linux C++ 代码 软件调试本身就是一项相对复杂的活动,他不仅要求调试者有着清晰的思路,而且对调试者本身的技能也有很高的要求.Windows下Visual Studio为我们做了很 ...
- 实现iOS图片等资源文件的热更新化(二):自定义的动态 imageNamed
这篇文章,要解决的是,使用一个自定义的 imageNamed 函数来替代系统的 imageNamed 函数.内部逻辑,将贯穿对比论证 关于"合适"的图片的定义.对iOS加载图片的规 ...
- Go语言接口
接口是面向对象的必备属性之一,即便是像C语言这种面向过程的语言也可以通过指向函数的指针来实现接口.我们熟知的面向对象语言中更是少不了接口.最近闲了下来,又可以开始学习Go语言了,发现Go语言的接口吸收 ...
- 【转载】MVC使用HandleErrorAttribute自定义异常
本文导读:在ASP.NET MVC中,可以使用HandleErrorAttribute特性来具体指定如何处理Action抛出的异常.只要某个Action设置了HandleErrorAttribute特 ...
- C语言学习002:第一个完整的C程序代码
#include <stdio.h>//引用相关的外部库,stdio.h包含了终端读写数据的代码 //程序入口,程序通过main函数的返回值判断程序是否运行成功,0表示成功,非0表示程序运 ...
- Web API接口设计经验总结
在Web API接口的开发过程中,我们可能会碰到各种各样的问题,我在前面两篇随笔<Web API应用架构在Winform混合框架中的应用(1)>.<Web API应用架构在Winfo ...
- 从C#到Objective-C,循序渐进学习苹果开发(4)--代码块(block)和错误异常处理的理解
本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验.本文继续上一篇随笔<从 ...
- Entity Famework 的通过IOC注入实现
1. 前言 最近刚换了一家公司,由于之前的公司代码并没有用到项目框架,需要我整理下NHibernate与Entity Framework之间的区别及适用性.并写出相关的示例代码 面试的时候吹的牛,得把 ...
- 不可或缺 Windows Native (22) - C++: 多重继承, 虚基类
[源码下载] 不可或缺 Windows Native (22) - C++: 多重继承, 虚基类 作者:webabcd 介绍不可或缺 Windows Native 之 C++ 多重继承 虚基类 示例1 ...
- student表中创建触发器,实现student表和student _course表的级联删除
create trigger Delete_sc on student for delete as delete student_course where student_course.s_no in ...