ASP.NET Core3.1 API 创建(Swagger配置、数据库连接Sql Server)、开发、部署

news2024/11/16 3:32:31

文章目录

  • 创建项目
    • 点击Nuget安装包
    • 删除原有controllers
    • 编辑新建controll、添加注释
    • Startup 注册Swagger服务
    • 使用swagger中间件
    • 配置XML注释
    • 更改启动端口 launchsettings.json
    • 在startup.cs跨域处理
    • 运行
  • 数据库设计与连接
    • 安装库
    • 新建类继承框架
    • 根据数据库表设计对应设计类
    • 在DataContext中初始化数据库建立属性,属性名最好与数据库表名称一致
    • appsetting.json设置连接字符串
    • Startup.cs注册数据库
  • 部署
    • 发布项目
    • IIS部署
      • 打开IIS——左击网站——添加网站——选中发布的publish文件物理位置
      • 点击应用池程序——找到发布API右击——基本设置——“无托管代码”——确定
      • 在防火墙打开所指定端口

创建项目

在这里插入图片描述
在这里插入图片描述

点击Nuget安装包

在这里插入图片描述

删除原有controllers

在这里插入图片描述

编辑新建controll、添加注释

在这里插入图片描述

Startup 注册Swagger服务

  services.AddSwaggerGen(s =>
            {
                //定义由Swagger生成器创建的一个或多个文档
                s.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo()
                {
                    Title = "Swagger测试接口",
                    Description = "这是一个swagger测试接口",
                    Version = "v1",
                    TermsOfService = new Uri("https://test.com"), // A URL to the Terms of Service for the API. MUST be in the format of a URL.   API服务条款的URL

                    Contact = new Microsoft.OpenApi.Models.OpenApiContact()
                    {
                        Email = "shanshanyouwen@126.com",
                        Name = "shanshanyouwen"
                    },
                    License = new Microsoft.OpenApi.Models.OpenApiLicense()
                    {

                        Name = "SwaggerLicense",
                        Url = new Uri("https://test.com")
                    }
                });

                //将 Swagger 配置为使用按照上述说明生成的 XML 文件。 对于 Linux 或非 Windows 操作系统,文件名和路径区分大小写。 例如,TodoApi.XML 文件在 Windows 上有效,但在 CentOS 上无效。
                var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
                var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
                // AppContext.BaseDirectory属性用于构造 XML 文件的路径。 一些 Swagger 功能(例如,输入参数的架构,或各自属性中的 HTTP 方法和响应代码)无需使用 XML 文档文件即可起作用。 对于大多数功能(即方法摘要以及参数说明和响应代码说明),必须使用 XML 文件。
                s.IncludeXmlComments(xmlPath);
            });

使用swagger中间件

  app.UseSwagger(); //启用Swagger
                              //访问地址 http://localhost:5000/swagger/index.html
   app.UseSwaggerUI(); //启用Swagger UI页面

配置XML注释

在这里插入图片描述
在这里插入图片描述

 <GenerateDocumentationFile>true</GenerateDocumentationFile>

更改启动端口 launchsettings.json

在这里插入图片描述

在startup.cs跨域处理

在这里插入图片描述

 services.AddCors(options => {
     options.AddPolicy("CorsPolicy", builder =>
     {
         builder.SetIsOriginAllowed((x) => true)
        .AllowAnyOrigin()
        .AllowAnyHeader()
        .AllowAnyMethod();
     });
 });

在这里插入图片描述

 app.UseCors("CorsPolicy");

运行

在这里插入图片描述

数据库设计与连接

安装库

在这里插入图片描述

新建类继承框架

新建DataContext类并继承DbContext

 public class DataContext:DbContext
 {
     public DataContext(DbContextOptions<DataContext> options)
         : base(options) { } 

 }

根据数据库表设计对应设计类

对应表
在这里插入图片描述

对应类

 public class CalPointData
 {
     [Key]
     public int id { get; set; }
     public string PointTag { get; set; }
     public string PointName { get; set; }
     public string PointValue { get; set; } 
     public DateTime? uptime { get; set; } 

 }

在DataContext中初始化数据库建立属性,属性名最好与数据库表名称一致

 public class DataContext:DbContext
 {
     public DataContext(DbContextOptions<DataContext> options)
         : base(options) { }
     /// <summary>
     /// 原始数据点表
     /// </summary>
     public DbSet<CalPointData> dbCalPointData { set; get; }
     /// <summary>
     /// 吹灰器投退点表
     /// </summary>
     public DbSet<SootblowerData> dbSootblowerData { get; set; }
     /// <summary>
     /// 吹灰器投退统计
     /// </summary>
     public DbSet<BlowerCount> dbBlowerCount { get; set; }
     /// <summary>
     /// 吹灰器故障点表
     /// </summary>
     public DbSet<FaultData> dbFaultData { get; set; }
     /// <summary>
     /// 吹灰器故障统计
     /// </summary>
     public DbSet<FaultRecord> dbFaultRecord { get; set; }
     /// <summary>
     /// 机组高温点位
     /// </summary>
     public DbSet<WallData> dbWallData { get; set; }
     /// <summary>
     /// 机组高温超限统计
     /// </summary>
     public DbSet<WallRecord> dbWallRecord { get; set; }
   

 }

appsetting.json设置连接字符串

 "ConnectionStrings": {
   "DataContext": "Server=127.0.0.1;Database=WrdSisData;user=sa;password=@Yiqing7717"
 }

在这里插入图片描述

Startup.cs注册数据库

在这里插入图片描述

 services.AddDbContext<DataContext>(options =>
         options.UseSqlServer(Configuration.GetConnectionString("DataContext")));
 services.AddCors(options => {
     options.AddPolicy("CorsPolicy", builder =>
     {
         builder.SetIsOriginAllowed((x) => true)
        .AllowAnyOrigin()
        .AllowAnyHeader()
        .AllowAnyMethod();
     });
 });

部署

发布项目

左击项目——点击发布——点击发布——点击目标位置,就是发布的API所有文件
在后期部署时,可以将整个publish文件夹拷贝放在指定位置
在这里插入图片描述
在这里插入图片描述

IIS部署

打开IIS——左击网站——添加网站——选中发布的publish文件物理位置

在这里插入图片描述

点击应用池程序——找到发布API右击——基本设置——“无托管代码”——确定

在防火墙打开所指定端口

可参考 https://blog.csdn.net/qq_40685439/article/details/116585478

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1131173.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AIGC时代 浪潮信息积极推动存储产品创新

近几年&#xff0c;AIGC的兴起&#xff0c;进一步驱动了全闪、混闪等存储产品的创新&#xff0c;也为市场带来了新的机遇&#xff0c;对于厂家而言&#xff0c;也需要升级存储产品的容量、性能及功能&#xff0c;方能满足场景诉求。对此&#xff0c;浪潮信息面向AIGC应用场景打…

8.2 矢量图层点要素单一符号使用一

文章目录 前言单一符号&#xff08;Single symbol&#xff09;渲染简单标记(Simple Marker)QGis代码实现 SVG标记&#xff08;SVG marker&#xff09;QGis代码实现 总结 前言 上一篇教程对矢量图层符号化做了一个整体介绍&#xff0c;并以点图层为例介绍了可以使用的渲染器&am…

解决org.quartz.SchedulerException: Job threw an unhandled exception.

文章目录 1. 复现错误2. 分析错误3. 解决问题3.1 解决方法一3.2 解决方法二 4. 分析spring中的jdk和cglib的动态代理4.1 动态代理对比4.2 原理区别4.3 性能区别4.4 各自局限4.5 静态代理和动态的本质区别 1. 复现错误 今天在执行quartz定时任务时&#xff0c;报出如下错误&…

使用element-UI Cascader组件,实现第一级单选选,第二级,第三级,子级可以多选

最近开发过程中&#xff0c;遇到需求测一个需求&#xff0c;就是级联选择器&#xff0c;需要多选&#xff1b;但是第一级是单选&#xff1b; 既要单选又要复选。参照网上内容&#xff0c;自己整理了一下功能实现&#xff1b; 如下图&#xff1a; 思路&#xff1a;1.把第一层的…

让酒酿得更明白,国台智能酿造标准体系重磅发布

执笔 | 洪大大 编辑 | 扬 灵 重阳下沙&#xff0c;是酱酒开启新一轮酿造周期的标志&#xff0c;是茅台镇千百年来恪守的传统文化&#xff0c;也是国台一年一度的重要时刻。 10月23日&#xff0c;智能酿造高质量发展论坛暨国台2024年度质量誓师大会隆重举办&#xff0c;此次…

orb-slam3编译手册(Ubuntu20.04)

orb-slam3编译手册&#xff08;Ubuntu20.04&#xff09; 一、环境要求1.安装git2.安装g3.安装CMake4.安装vi编辑器 二、源代码下载三、依赖库下载1.Eigen安装2.Pangolin安装3.opencv安装4.安装Python & libssl-dev5.安装boost库 三、安装orb-slam3四、数据集下载及测试 写在…

正点原子嵌入式linux驱动开发——Linux LCD驱动

LCD是很常用的一个外设&#xff0c;通过LCD可以显示绚丽的图片、界面等&#xff0c;提交人机交互的效率。STM32MP1提供了一个LTDC接口用于连接RGB接口的液晶屏。本章就来学校一下如何在Linux下驱动LCD屏。 LCD和LTDC简介 LCD简介 这里在当时学习stm32裸机开发的时候就学过了…

三代自动驾驶系统及主流科技公司自动驾驶技术方案简介

截止目前&#xff0c;按技术特点&#xff0c;自动驾驶技术大致经历了三代发展&#xff1a;第一代自动驾驶技术以后融合感知技术&#xff0c;高精度地图&#xff0c;基于惯导、GPS定位系统&#xff0c;预测模块&#xff0c;基于优化、搜索的规控等组成。第一代比较成熟的自动驾驶…

Pytorch实现深度学习常见问题

RuntimeError: stack expects each tensor to be equal size, but got [3, 300, 300] at entry 0 and [3, 301, 301] at entry 24 这里的问题出现的原因肯定是在数据预处理处&#xff0c;如下图&#xff0c;当数据使用不同的transforms处理方式时&#xff0c;会导致数据的尺寸大…

DC/DC升压模块电源 高电压稳压输出 12v24v28v48v转600V800V1000V1100V1300V1500V2000V3000V4000V

特点 ● 效率高达 80% ● 2*2 英寸标准封装 ● 单电压输出 ● 价格低 ● 稳压输出 ● 工作温度: -40℃~85℃ ● 阻燃封装&#xff0c;满足UL94-V0 要求 ● 温度特性好 ● 可直接焊在PCB 上 应用 HRA(B) 0.1~30W 系列模块电源是一种DC-DC升压变换器。该模块电源的输入电压分为…

SpringBoot Web请求响应

目录 前言请求PostmanPostman使用 简单参数原始方式接收普通参数SpringBoot方式接收普通参数参数名不一致问题 实体参数简单实体参数复杂实体对象 数组集合参数数组参数集合参数 日期参数JSON参数路径参数 响应ResponseBody统一响应结果请求响应案例案例需求与准备工作案例实现…

足底筋膜炎能自愈吗

什么是足底筋膜炎 足底筋膜炎是足底的肌腱或者筋膜发生无菌性炎症所致。最常见症状是脚跟的疼痛与不适&#xff0c;压痛点常在足底近足跟处&#xff0c;有时压痛较剧烈&#xff0c;且持续存在。晨起时疼痛感觉明显&#xff0c;行走过度时疼痛感加剧&#xff0c;严重患者甚至站…

【Java网络编程】 三

本文主要介绍了TCP版本的回显服务器的编写。 一.TCP版本回显服务器 1.服务器 服务器的实现流程 1.接收请求并解析 2.根据请求计算出响应&#xff08;业务流程&#xff09; 3.把响应返回给客户端 代码&#xff1a; import java.io.IOException; import java.io.InputStream; i…

算法训练 第四周

一、二分查找 本题给我们提供了一个有n个元素的升序整形数组nums和一个目标值target&#xff0c;要求我们找到target在nums数组中的位置&#xff0c;并返回下标&#xff0c;如果不存在目标值则返回-1。nums中的所有元素不重复&#xff0c;n将在[1&#xff0c;10000]之间&#x…

高效视频剪辑:批量调整视频尺寸的技巧与步骤

对于许多新手和初学者来说&#xff0c;视频剪辑可能是一项令人望而生畏的任务。但是&#xff0c;有了正确的工具&#xff0c;比如固乔剪辑助手&#xff0c;即使你是个新手&#xff0c;也能轻松、高效地完成视频剪辑工作。下面就是关于如何使用固乔剪辑助手来批量调整视频尺寸的…

Python第三方库 - Flash(python web框架)

1 Flask 1.1 认识Flask Web Application Framework&#xff08; Web 应用程序框架&#xff09;或简单的 Web Framework&#xff08; Web 框架&#xff09;表示一个库和模块的集合&#xff0c;使 Web 应用程序开发人员能够编写应用程序&#xff0c;而不必担心协议&#xff0c;线…

部署springboot打包不打包配置文件,配置文件为外部配置文件使用 (真实场景)

场景 springboot项目打包的时候&#xff0c;想要将配置文件不要打包到jar包中&#xff0c;作为外部使用&#xff0c;不同环境&#xff0c;配置文件的配置值肯定不一样&#xff0c;真实场景。 比如 开发环境数据库配置为 127.0.0.1:3306 &#xff0c; 测试环境 122.0.2.2&am…

火山引擎 LAS Spark 升级:揭秘 Bucket 优化技术

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 文章介绍了 Bucket 优化技术及其在实际业务中的应用&#xff0c;包括 Spark Bucket 的基本原理&#xff0c;重点阐述了火山引擎湖仓一体分析服务 LAS&#xff08;下…

记录--vue3 + mark.js | 实现文字标注功能

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 页面效果 具体实现 新增 1、监听鼠标抬起事件&#xff0c;通过window.getSelection()方法获取鼠标用户选择的文本范围或光标的当前位置。2、通过 选中的文字长度是否大于0或window.getSelection().isC…

drf-过滤、排序、异常处理、自封装Response

过滤 过滤就是根据路由url?后的信息过滤出符合&#xff1f;后条件的数据而非全部&#xff0c;比如…/?nameweer就是只查name是weer的数据&#xff0c;其余不返回。 1、安装&#xff1a;pip3 install django-filter2、注册&#xff1a;在settings.py中的app中注册django-filt…