• .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]

    附:

    一.关于注释的问题

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

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

    clip_image006

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

    3. 来看看效果

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

    clip_image010

    二.设置默认返回Json

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

    这个返回的结果是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"));
  • 相关阅读:
    python for test
    python链接mysql pymysql
    MongoDB数据表添加字段
    NodeVisitor
    无法解决的错误
    一个点绕着另一个点旋转一定角度后的坐标
    2.0版本里程碑,研发日志
    osg Node getParentalNodePaths()报错
    TeslaManage 2.0编译日志
    机械臂模拟2.0
  • 原文地址:https://www.cnblogs.com/chihirosan/p/5662840.html
Copyright © 2020-2023  润新知