当前位置: 首页 > news >正文

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

文章目录

  • 创建项目
    • 点击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服务条款的URLContact = 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.htmlapp.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.lryc.cn/news/207012.html

相关文章:

  • 大数据之LibrA数据库常见术语(八)
  • 【实战】Kubernetes安装持久化工具NFS-StorageClass
  • 透明安全地解释Moonbeam基金会分配的GLMR去了哪
  • python安装包失败 安装scipy包
  • 解决javascript报错:SyntaxError: Invalid Unicode escape sequence
  • 【Python第三方包】使用Python的Translate包进行文本翻译
  • 【OpenCV实现图像阈值处理】
  • 【Python机器学习】零基础掌握StackingRegressor集成学习
  • JVM(Java Virtual Machine)G1收集器篇
  • 微信小程序设计之主体文件app-json-tabBar
  • GZ035 5G组网与运维赛题第2套
  • 如何训练Embedding Model
  • springboot配置redis、Spring cache
  • 悟空crm安装搭建 报错[0] RedisException in Redis.php line 56问题处理办法
  • Ubuntu22.04 交叉编译阿里oss c-sdk
  • arch linux 安装 vsftpd 配置虚拟用户
  • Django的查询所有,根据用户名查询,增加用户操作
  • 【adb】adb相关命令行及adb传输文件权限问题 remote couldn‘t create file: Read-only file system
  • 基于物联网云平台的分布式光伏监控系统的设计与实现
  • 初识Node.js开发
  • 【Python入门教程】基于OpenCV视频分解成图片+图片组合成视频(视频抽帧组帧)
  • 微前端qiankun接入Vue和React项目
  • 提升技能,一触即达!全新在线题库微信小程序等你来挑战!
  • 语雀P0级故障复盘,有9个字亮了
  • 在 openresty 中使用 capnp lua 库
  • 私藏小技巧:让微信朋友圈营销方便化的小窍门!
  • Centos使用tomcat部署jenkins
  • uni-app打包apk实现自动更新
  • SRS srs-bench
  • HackTheBox-Starting Point--Tier 1---Appointment