.Net Core之初识及WebApi的简单使用和发布

1,296 阅读6分钟

  1. .Net Core初识
    .NET Core是一个开源通用的开发框架,支持跨平台,即支持在Window、macOS和Linux等系统上的开发和部署,并且可以在硬件设备、云服务和嵌入式/物联网方案中进行使用。
    更多关于.Net Core的介绍可在微软官方文档进行查看,具体.Net Core介绍地址为:docs.microsoft.com/zh-cn/dotne…

  2. .Net Core简单使用WebApi--创建项目
    开发工具:VS2019

    创建WebApi项目,在模板输入框中输入关键字Core,然后在下方找到ASP.NET Core Web应用程序并选中,然后点击下一步,如下图所示:

    然后输入项目名称和解决方案名称,点击创建,如下图所示:

    然后选中API选项,取消为HTTPS配置的勾选,点击创建,如下图所示:

    创建后的项目文件如下图所示:

    至此,项目的创建就完成了。

  3. .Net Core简单使用WebApi--创建API
    在上面的第二个步骤中,我们已经将WebApi项目进行创建,接下来就是创建一个测试的Api接口文档。

    在新建Api文件之前,我们可以将项目中的WeatherForecastController.cs和WeatherForecast.cs文件删除(创建项目时VS默认给我们创建的实例文件)。
    接下来我们新建一个SysUserController控制器,创建的操作方式和ASP.NET的方式一样,同时我们在该控制器中再创建一个SYS_User实体文件(正式环境不应该将这2个类文件放在一起),具体代码如下所示:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using Microsoft.AspNetCore.Http;
    using Microsoft.AspNetCore.Mvc;
    
    namespace Quber.NetCore.WebApi.Controllers
    {
        [Route("api/[controller]")]
        [ApiController]
        public class SysUserController : ControllerBase
        {
            /// <summary>
            /// GET请求
            /// </summary>
            /// <returns></returns>
            [HttpGet]
            [Route("getusers")]
            public List<SYS_User> GetUserList()
            {
                var ret = new List<SYS_User>();
    
                for (int i = 0; i < new Random().Next(1, 20); i++)
                {
                    var model = new SYS_User
                    {
                        UserName = "User-" + (i + 1),
                        UserAge = new Random().Next(10, 100),
                        CrtTime = DateTime.Now
                    };
                    if (i % 2 != 0)
                    {
                        model.SortNo = i + 1;
                    }
    
                    ret.Add(model);
                }
    
                return ret;
            }
    
            /// <summary>
            /// POST请求
            /// </summary>
            /// <param name="data"></param>
            /// <returns></returns>
            [HttpPost]
            [Route("uploaduser")]
            public SYS_User GetUserList([FromBody] SYS_User data)
            {
                return data;
            }
        }
    
        /// <summary>
        /// 实体文件
        /// </summary>
        public class SYS_User
        {
            public string UserName { get; set; }
    
            public int UserAge { get; set; }
    
            public DateTime CrtTime { get; set; }
    
            public int? SortNo { get; set; }
    
            public int Count => 10 + UserAge;
        }
    }
    

    在上述代码中,我们可以看到在控制器的上方有一个Route的路由属性​,顾名思义就是设置该API的路由访问地址,其中的[controller]代表的是控制器的名称(当然我们还可以增加[action]到路由地址中,根据实际需要灵活配置),也就是说该API的地址是:http://ip/api/sysuser/……
    同时在上述代码中,我们定义了2个接口方法,一个是GET请求,另一个是POST请求,同时也设置了各自的路由地址:
    GET方法的API请求地址就应该是:http://ip/api/sysuser/getusers
    POST方法的API请求地址就应该是:http://ip/api/sysuser/uploaduser

    此时我们可以按Ctrl+F5进行查看,然后将浏览器的地址修改为:http://localhost:2101/api/sysuser/getusers,回车访问,效果如下所示:

    不知道你们有没有发现,在接口返回的数据中,字段属性的首字母变为小写了,同时针对时间字段的返回值中,居然包含了一个字符T,不是我们想要的格式,那么如果我们想保持原实体的大小写格式输出和我们想要的时间格式,就需要进行如下的配置:
    我们需要安装Microsoft.AspNetCore.Mvc.NewtonsoftJson依赖包,如下图所示:

    然后在Startup.cs中的ConfigureServices方法中添加如下代码设置:

    //使用依赖包Microsoft.AspNetCore.Mvc.NewtonsoftJson提供的方法来设置返回的数据格式
    services.AddControllers().AddNewtonsoftJson(config =>
    {
    	//忽略循环引用
    	config.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
    	//不使用驼峰
    	config.SerializerSettings.ContractResolver = new DefaultContractResolver();
    	//设置时间格式
    	config.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
    	////如字段为null值,该字段不会返回到前端
    	//config.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
    });
    

    此时我们在重新生成运行API接口,就返回我们想要的数据格式了,如下图所示:

  4. .Net Core简单使用WebApi--部署发布
    选中项目鼠标点击右键,选中发布,在弹出来的界面中选择文件夹,然后点击下一步,如下图所示:

    选择要发布的文件夹地址,然后点击完成,如下图所示:

    然后在接下来的界面中,点击可移植的后面的编辑按钮,在弹出来的界面中,将部署模式选择为框架依赖(当然也可以选择独立,选择独立后,发布后的文件就会很大,会将所有要用到的依赖dll文件全部打包发布),目标运行时选择为可移植(选择此处就是指明该项目发布到那个操作系统平台)

    至此,发布前的准备工作就做完了,接下来点击发布按钮即可发布,如下图所示:

    对发布项目WebApi项目进行部署
    这里我们只讲针对IIS进行部署,针对IIS进行部署,首先需要安装ASP.NET Core Runtime模块,到如下地址下载安装即可:
    下载地址:dotnet.microsoft.com/download/do…

    下载完安装即可,安装完需要重启IIS服务,如下图所示:

    如果需要查看电脑安装了哪些模块,我们可以在CMD中输入dotnet --info命令来查看:

    当我们安装完ASP.NET Core Runtime模块后,打开IIS管理器,双击其中的模块,你会发现多了一个AspNetCoreModuleV2模块,这就是IIS部署.Net Core WebApi所需要的模块,如下图所示:

    接下来就和部署Web项目到IIS的步骤是一样的操作,这里就略过了,接下来我们就可以通过IIS部署的域名或IP进行访问接口了,如下图所示:

    到此,.Net Core WebApi在IIS上的部署方式就完成了,当然还可以通过控制台部署独立部署,在实际应用中,还是建议使用IIS进行部署。

最后附上Demo源码下载地址:download.csdn.net/download/qu…