webapi成功的案例源码升级版_webapi 源码 - CSDN
精华内容
参与话题
  • ASP.NET WebAPI开发实例

    万次阅读 多人点赞 2018-09-12 16:32:14
    一、环境搭建 打开VS2012, IDE版本为Visual Studio Ultimate 2012 文件 - 新建项目 - Visual C# - Web – ASP.NET MVC4 Web 应用程序...选择联机 – 搜索webapi – 安装webapi2.2 – 安装webapi2.2helppage ...

    一、环境搭建

    打开VS2012, IDE版本为Visual Studio Ultimate 2012
    这里写图片描述

    文件 - 新建项目 - Visual C# - Web – ASP.NET MVC4 Web 应用程序
    这里写图片描述
    选择空项目组
    这里写图片描述
    项目右键 – 管理NuGet程序包
    这里写图片描述
    选择联机 – 搜索webapi – 安装webapi2.2 – 安装webapi2.2helppage
    这里写图片描述
    Webapi2.2为restApi开发依赖库,webapi2.2helppage为restApi帮助文档自动生成依赖库,安装成功后,项目目录中会新增一个Areas文件夹,存放的是helppage的相关代码。
    项目右键 – 属性
    这里写图片描述
    选择生成选项 – 勾选XML文档文件 – 复制路径 – 保存
    这里写图片描述
    Areas – HelpPage – App_Start – HelpPageConfig.cs
    这里写图片描述
    反注释 – 更改路径
    这里写图片描述
    App_Start – RouteConfig.cs
    这里写图片描述
    添加代码

    routes.MapRoute(
        "HelpPage", // 路由名称
        "{controller}/{action}/{id}", // 带有参数的 URL
        new { controller = "help", action = "Index", id = UrlParameter.Optional }, // 参数默认值
        new string[] { "mvcProject.Areas.HelpPage.Controllers" }
    ).DataTokens.Add("Area", "HelpPage");

    这里写图片描述
    App_Start – WebApiConfig.cs
    这里写图片描述
    添加{action}
    这里写图片描述

    Controllers右键 – 添加 – 控制器
    这里写图片描述
    选择包含空读/写操作的API控制器 – 添加
    这里写图片描述

    运行项目
    这里写图片描述
    测试api – 输入http://localhost:10830/api/test/get(端口号改为自己的端口)
    这里写图片描述
    这里写图片描述

    二、 请求方式

    http://www.cnblogs.com/landeanfen/p/5337072.html
    https://blog.csdn.net/qq_22267353/article/details/82216535

    三、 跨域问题

    项目右键 – 管理NuGet程序包
    这里写图片描述
    联机 – 搜索webApi
    这里写图片描述
    Web.config
    这里写图片描述
    添加代码

    <add key="cors_allowOrigins" value="*" />
    <add key="cors_allowHeaders" value="*" />
    <add key="cors_allowMethods" value="*" />

    cors_allowOrigins 表示允许请求的网站, *表示允许所有网站请求
    这里写图片描述
    App_Start – WebApiConfig.cs
    这里写图片描述
    添加代码

    using System.Configuration;
    
    var allowOrigins = ConfigurationManager.AppSettings["cors_allowOrigins"];
    var allowHeaders = ConfigurationManager.AppSettings["cors_allowHeaders"];
    var allowMethods = ConfigurationManager.AppSettings["cors_allowMethods"];
    var globalCors = new System.Web.Http.Cors.EnableCorsAttribute(allowOrigins, allowHeaders, allowMethods)
    {
        SupportsCredentials = true
    };
    config.EnableCors(globalCors);

    这里写图片描述

    四、 打包发布

    项目 – 右键 – 发布
    这里写图片描述
    新建配置文件
    这里写图片描述

    名称随便取
    这里写图片描述
    发布方法 – 文件系统
    这里写图片描述
    选择网站包存放的位置
    这里写图片描述
    点击发布
    这里写图片描述

    这里写图片描述

    展开全文
  • 【C#】WebApi项目代码

    千次阅读 2019-01-25 17:38:47
    WebApi项目代码 using System; using System.Data; using System.Data.SqlClient; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using ...

    WebApi项目代码

    using System;
    using System.Data;
    using System.Data.SqlClient;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Net.Http;
    using System.Web.Http;
    using Newtonsoft.Json;
    using WebApplication1.Models;
    using System.Web.Http.Results;
    
    namespace WebApplication1.Controllers
    {
        public class ValuesController : ApiController
        {
            public const string constr = @"Data Source=.;Initial Catalog=UserInfo;User ID=dongcheng;Password=Aa336699";
            // GET api/values
            /// <summary>
            /// 客户端调用某个Action方法并希望以JSON的格式返回请求的数据,使用JsonResult
            /// </summary>
            /// <returns></returns>
            public /*string*/JsonResult<List<User>> GetAll()
            {
                List<User> userInfoList = new List<User>();
                SqlConnection conn = new SqlConnection(constr);
                string text = "userinfo_get";
                conn.Open();
                SqlDataAdapter da = new SqlDataAdapter(text, conn);
                DataSet ds = new DataSet("Students");
                da.Fill(ds);
                DataTable dt = ds.Tables[0];
                foreach (DataRow row in dt.Rows)
                {
                    User user = new User
                    {
                        Id = Convert.ToInt16(row["Id"]),
                        Name = Convert.ToString(row["Name"]),
                        Sex = Convert.ToString(row["Sex"]),
                        Age = Convert.ToInt16(row["Age"])
                    };
    
                    userInfoList.Add(user);
                }
                conn.Close();
                return Json<List<User>>(userInfoList);
                ///xml不可行
                //XmlSerializer serializer = new XmlSerializer(typeof(List<User>));
                //return serializer.Serialize(userInfoList);
                
                //return JsonConvert.SerializeObject(userInfoList);
            }
    
            // GET api/values/5
            public /*string*/JsonResult<List<User>> Get(string name)
            {
                //test = "王";
                //try
                //{
                    SqlConnection conn = new SqlConnection(constr);
                    //string spName = "Select * from people where name='王'";
                    string spName = "userinfo_sel";
                    SqlParameter[] selpara =
                    {
                        new SqlParameter("@name",name)
                    };
                    SqlCommand cmd = new SqlCommand(spName, conn)
                    {
                        CommandType = CommandType.StoredProcedure
                    };
                    conn.Open();
                    foreach (SqlParameter parameter in selpara)
                    {
                        cmd.Parameters.Add(parameter);
                    }
                    SqlDataReader reader = cmd.ExecuteReader();
                    List<User> list = new List<User>();
                    while (reader.Read())
                    {
                        User user = new User()
                        {
                            Id = Convert.ToInt16(reader["Id"]),
                            Name = reader["Name"].ToString(),
                            Sex = reader["Sex"].ToString(),
                            Age = Convert.ToInt16(reader["Age"])
                        };
                        list.Add(user);
                    }
                    return Json<List<User>>(list);
                    //return JsonConvert.SerializeObject(list);
                //}
                //catch (Exception ex)
                //{
                //    return Json<List<User>>("1");
                //}
            }
            [HttpPost]
            // POST api/values
            public void Add([FromBody]Para para)
            {
                SqlConnection conn = new SqlConnection(constr);
                conn.Open();
                string text = "userinfo_add";
                SqlParameter[] addpara =
                {
                        new SqlParameter("@name",para.Name),
                        new SqlParameter("@sex",para.Sex),
                        new SqlParameter("@age",para.Age)
                    };
                SqlCommand cmd = new SqlCommand(text, conn);
                cmd.CommandType = CommandType.StoredProcedure;
                foreach (SqlParameter parameter in addpara)
                {
                    if (parameter != null)
                        cmd.Parameters.Add(parameter);
                    else
                        cmd.Parameters.Add(0);
                }
                cmd.ExecuteNonQuery();
                conn.Close();
            }
            [HttpPost]
            // PUT api/values/5
            public void Update([FromBody]Para para)
            {
                SqlConnection conn = new SqlConnection(constr);
                string text = "userinfo_update";
                SqlParameter[] updatepara =
                {
                    new SqlParameter("@id",para.Id),
                    new SqlParameter("@name",para.Name),
                    new SqlParameter("@sex",para.Sex),
                    new SqlParameter("@age",para.Age)
                };
                SqlCommand cmd = new SqlCommand(text, conn);
                cmd.CommandType = CommandType.StoredProcedure;
                foreach (SqlParameter parameter in updatepara)
                {
                    if (parameter != null)
                        cmd.Parameters.Add(parameter);
                    else
                        continue;
                }
                conn.Open();    //Open the sql
                cmd.ExecuteNonQuery();
                conn.Close();
            }
            [HttpPost]
            // DELETE api/values/5
            public void Delete([FromBody]int id)
            {
                SqlConnection conn = new SqlConnection(constr);
                string text = "userinfo_del";
                SqlParameter[] delpara = {
                    new SqlParameter("@id",id)
                };
                conn.Open();    //Open the sql
                SqlCommand cmd = new SqlCommand(text, conn);
                cmd.CommandType = CommandType.StoredProcedure;
                foreach (SqlParameter parameter in delpara)
                {
                    cmd.Parameters.Add(parameter);
                }
    
                cmd.ExecuteNonQuery();
                conn.Close();
            }
        }
    }
    
    
    展开全文
  • Eclipse查看Servlet源码

    万次阅读 多人点赞 2017-03-27 21:32:25
    Eclipse查看Servlet源码@(Java)1.servlet-api 和 javax.servlet-api的区别在正式查看Servlet源码前,我们首先要分清楚上述两个jar包的区别。 引用:这两个构件都是 Servlet-Specificatoin Jar (Servlet 规范包),...

    Eclipse查看Servlet源码

    @(Java)

    1.servlet-api 和 javax.servlet-api的区别

    在正式查看Servlet源码前,我们首先要分清楚上述两个jar包的区别。

    引用这两个构件都是 Servlet-Specificatoin Jar (Servlet 规范包),只不过因为版本升级:
    3.1 之前的 Servlet API 构件叫做 servlet-api-xxx.jar
    3.1 及之后的Servlet API 构件改名为 javax.servlet-api-xxx.jar

    也就是说两者的区别其实就是版本上的区别,在下载源码包时注意对应的版本。

    2.下载源码

    据我刚才所说,下载源码时要注意相应的版本。但是从我的实际操作来看,查看servlet-api.jar,使用的是 javax.servlet-api的源码,源码能看问题也不大。
    地址:http://www.java2s.com/Code/JarDownload/javax.servlet/javax.servlet-api-3.0.1-sources.jar.zip

    3.搭建项目

    3.1创建java web项目

    Alt text

    3.2查看未引入源码的HttpServlet

    Alt text

    3.3选中对应jar包,右键选择Properties

    Alt text

    3.4导入下载到的源码jar

    Alt text

    3.5导入成功

    Alt text

    4.小结

    通过该例子,就可以慢慢的查看servlet的源码了。当然了,如果想看其他jar包的源码,其实操作都差不多,都是下载源码,在导入查看。

    5.参考

    https://www.zhihu.com/question/35812310/answer/64578510

    展开全文
  • eclipse 查看jar包源代码两种方式

    万次阅读 2018-12-03 14:06:02
    我们查看jar源码时,一般是安装个jd-gui,把jar拷出来,然后从jd-gui中打开jar再查看源码,这个过程不免有些麻烦,当然,本篇所讲的快速查看的方法也没什么高科技手段,只是将jd-gui集成在Eclipse中,然后就可以在...

     

     

     

    我们查看jar源码时,一般是安装个jd-gui,把jar拷出来,然后从jd-gui中打开jar再查看源码,这个过程不免有些麻烦,当然,本篇所讲的快速查看的方法也没什么高科技手段,只是将jd-gui集成在Eclipse中,然后就可以在Eclipse中直接打开class了,这样会不但操作方便也会节省不少时间,具体步骤:

    下载插件:jd- eclipse -site -1.0.0-RC2.zip

    打开Eclipse-->Help-->Install New Software:

    在Name框中命名,然后点击Archive按钮,选择下载下来的插件,接下来点击OK:

    如图,选中插件(因为我是已经安装过的,因此显示的样式不太一样),下面的checkbox都不要勾选,直接next-->finish。

    好了,找个jar包,直接打开class文件测试下:

    或者,你也可以在你的java文件中直接Ctrl+鼠标左键点击你所继承的父类(SDK)查看源码:

    Activity源码:

     

     

     

    Eclipse查看Servlet源码

    @(Java)

    1.servlet-api 和 javax.servlet-api的区别

    在正式查看Servlet源码前,我们首先要分清楚上述两个jar包的区别。

    引用这两个构件都是 Servlet-Specificatoin Jar (Servlet 规范包),只不过因为版本升级: 
    3.1 之前的 Servlet API 构件叫做 servlet-api-xxx.jar 
    3.1 及之后的Servlet API 构件改名为 javax.servlet-api-xxx.jar

    也就是说两者的区别其实就是版本上的区别,在下载源码包时注意对应的版本。

    2.下载源码

    据我刚才所说,下载源码时要注意相应的版本。但是从我的实际操作来看,查看servlet-api.jar,使用的是 javax.servlet-api的源码,源码能看问题也不大。 
    地址:http://www.java2s.com/Code/JarDownload/javax.servlet/javax.servlet-api-3.0.1-sources.jar.zip

    3.搭建项目

    3.1创建java web项目

    Alt text

    3.2查看未引入源码的HttpServlet

    Alt text

    3.3选中对应jar包,右键选择Properties

    Alt text

    3.4导入下载到的源码jar

    Alt text

    3.5导入成功

    Alt text

    4.小结

    通过该例子,就可以慢慢的查看servlet的源码了。当然了,如果想看其他jar包的源码,其实操作都差不多,都是下载源码,在导入查看。

    5.参考

    https://www.zhihu.com/question/35812310/answer/64578510

     

    展开全文
  • 14.app后端如何设计api

    万次阅读 2016-06-18 20:29:51
    app和后端的交互,一般都是通过后端提供的api实现。api的设计,估计很多刚进入app后端的小伙伴会一无头绪,不知道怎么入门。下面根据自己3年的app后端经验,总结出下几个api设计原则,给小伙伴参考。
  • 如何架构一个合适的企业API网关

    万次阅读 2017-05-25 09:34:27
    API Gateway(API GW / API 网关),顾名思义,是出现在系统边界上的一个面向API的、串行集中式的强管控服务,这里的边界是企业IT系统的边界,主要起到隔离外部访问与内部系统的作用。在微服务概念的流行之前,API...
  • Android 1000实例代码集结(三 )

    千次阅读 2017-04-27 17:37:04
    UI设计之 仿做蘑菇街UI设计 源码.zip ViewPager-实现左右两个屏幕的切换.rar VIEW双缓冲与SurfaceView比较.zip weibo4andriod-2011-01-14.zip 一个支持暂停下载断点续传的源码 .rar 一个登陆和注册界面.rar 一个短信...
  • 几款移动跨平台App开发框架比较

    万次阅读 2020-10-14 18:33:48
    整理目前流行的跨平台WebApp开发技术... 提供访问设备原生API的 JavaScript API 包装器; 解决原生开发中机型适配的难题; 提供打包、部署的工具或服务; 都需要学习自身封装的 JavaScript API; 筛选框架的要求...
  • 智能家居云平台设计

    万次阅读 2019-04-09 16:39:07
    智能家居云平台设计 摘要 智能家居是未来家居的发展方向,其利用先进的网络技术、计算机技术和无线通信技术等将家居中的各种电子电气设备连接起来,统一管理、远程监控和资源共享,实现了高效、便利的生活环境。...
  • ASP.NET 5系列教程 (一):领读新特性

    千次阅读 2016-06-22 14:47:32
    ASP.NET 5 是用于创建Web应用的框架,相对于以前的版本它更加简练、灵活,本次发布的版本彻底优化了应用开发框架,你可以轻松部署应用到云端或其他平台,它包含了最小的模块化组件,所以确保你在构建复杂解决方案的...
  • 它包括可升级的三个组件:引擎、工作列表和Web界面。它的流程定义语言虽然使用XML格式,其灵感来源于 Scheme,一种Lisp方言。 更多OpenWFE信息 Freefluo Freefluo 是一个使用Web Service的工作流协同工具...
  • Spring Boot 默认为我们提供了静态资源处理,使用WebMvcAutoConfiguration ...如果想要自己完全控制WebMVC,就需要在@Configuration注解的配置类上增加@EnableWebMvc(@SpringBootApplication注解的程序入口类已经
  • spring5.0 函数式web框架 webflux

    万次阅读 2018-05-15 16:08:57
    spring5.0 函数式web框架 webflux2个demo的源码在GitHub上 链接点这里spring50 函数式web框架 webflux 函数式web框架 webFlux什么是函数式 什么是响应式 什么是webFlux webFlux 简单实例 更简单的使用webFlux ...
  • autocad二次开发资料总结

    千次阅读 2015-11-23 21:45:39
    autocad二次开发 AutoCAD(Auto Computer Aided Design)是美国Autodesk公司研制开发的一款计算机辅助设计软件,它不是一款简单的绘图工具,而是一个复杂的计算机辅助设计系统。我们可以根据他灵活的开放性对其进行...
  • QQ群: 264695584 QQ: 848643228 他山界面论坛: https://bbs.otherhill.com/ https://bbs.oltag.com/ http://bbs.oltag.com/  csdn blog: http://blog.csdn.net/otherhill/article/details/54839090...taobao....
  • 深度解析:J2EE vs .NET开发平台

    万次阅读 2007-07-27 09:02:00
    看到这个标题,也许会有人表示疑惑,J2EE和.NET并不在一个层次上,怎么能将它们放在一起呢?需要指出的是,通常所说的.NET包含了一个...随着三层/多层企业信息系统结构的深度发展和下一代分布式计算模型Web 服务
  • WebSocket 与 netty服务器 实战

    万次阅读 2017-12-17 15:04:39
    netty服务器 实战后续献上 线上的例子….websocket原理是客户端浏览器首先要向服务器发送一个http请求,这个请求与一般的http请求不同,包含了一些附加头消息,其中 Upgrade:WebSocket 表明这是一个申请协议升级的...
  • Android 上百实例源码分析以及开源分析

    万次阅读 多人点赞 2012-07-28 09:32:38
    首先 介绍几本书籍(下载包中)吧。 01_Android系统概述 02_Android系统的开发综述 03_Android的Linux内核与驱动程序 04_Android的底层库和程序 ...05_Android的JAVA虚拟机和JAVA环境 ...09_Android的多
  • Java开源 开源工作流

    万次阅读 2007-08-12 10:24:00
    Willow 点击次数:18942由Huihoo Power开发详细可...它是一个完整的业务处理管理套件:一个引擎,一个工作列表,一个Web界面和一个反应器(存放自动代理)。它可以可以跟你的程序很好的给合。 jBpm 点击次数:15986jBp
  • 知识进步的阶梯--书

    万次阅读 2009-02-15 11:34:00
    推荐.Net最新图书: 推荐程度: ☆☆☆☆☆ 刨丁解牛:纵向切入Asp.net 3.5控件和组件开发技术 --基于VS 2008/C# 
1 2 3 4 5 ... 20
收藏数 11,990
精华内容 4,796
关键字:

webapi成功的案例源码升级版