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.rhkb.cn/news/171428.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#版字节跳动SDK - SKIT.FlurlHttpClient.ByteDance

前言 在我们日常开发工作中对接第三方开放平台&#xff0c;找一款封装完善且全面的SDK能够大大的简化我们的开发难度和提高工作效率。今天给大家推荐一款C#开源、功能完善的字节跳动SDK&#xff1a;SKIT.FlurlHttpClient.ByteDance。 项目官方介绍 可能是全网唯一的 C# 版字节…

报错:Could not resolve host: mirrorlist.centos.org;Unknown error

报错&#xff1a;Could not resolve host: mirrorlist.centos.org;Unknown error 一般是因为网络配置错误导致无法连接外网&#xff0c;我们先尝试ping一下www.baidu.com发现无法ping通。 果然&#xff0c;接下来我们就开始排查吧&#xff01;&#xff01; 1.网络配置查看 打开…

【2024秋招】2023-9-16 贝壳后端开发二面

1 自我介绍 2 秒杀系统 2.1 超卖怎么解决 3 redis 3.1 过期策略 3.2 过期算法 4 kafka 4.1 说一说你对kafka的了解 4.2 如何保证事务性消息 4.3 如何保证消息不丢失 4.4 消息队列的两种通信方式 点对点模式 如上图所示&#xff0c;点对点模式通常是基于拉取或者轮询…

QWidget|QFrame设置背景透明且可以带有边框颜色

QWidget|QFrame设置背景透明且可以带有边框颜色 Chapter1 《Qt》part 6 QSS Qt样式表——界面美化1($$$)Chapter2 【QT】QSS美化——基础知识Chapter3 QWidget|QFrame设置背景透明且可以带有边框颜色参考链接Chapter4 Qt 中设置窗体(QWidget)透明度的几种方法1. 设置窗体的背景…

源码角度分析Java 循环中删除数据为什么会报异常

一、源码角度分析Java 循环中删除数据为什么会报异常 相信大家在之前或多或少都知道 Java 中在增强 for中删除数据会抛出&#xff1a;java.util.ConcurrentModificationException 异常&#xff0c;例如&#xff1a;如下所示程序&#xff1a; public class RmTest {public sta…

【微信小程序】发布投票与用户投票完整讲解

目录 前言 组件功能示例 一、数据库 二、后端接口定义 三、前端准备 3.1 定义连接接口 3.2 Vant Weapp UI 组件库 3.3 授权登录与相关工具 四、小程序编写 4.1 投票组件 WXML WXSS JSON WXJS 效果展示讲解&#xff1a; 4.2 发布投票组件 WXML WXSS JSON WX…

qt hiRedis封装使用

qt Redis使用_大别山的孩子的博客-CSDN博客文章浏览阅读2.6k次。代码是对redis常见的hash的封装和使用每个函数都亲自测试过关于如何安装hiredis模块&#xff0c;网上一搜一大堆&#xff0c;这里不在赘述&#xff0c;如有其他问题欢迎留言交流。头文件#ifndef REDISBASEMODULE_…

windows PC virtualBox 配置

效果&#xff1a; oracle vitualbox 可以访问通PC主机&#xff0c;可以访问外网: 注意&#xff0c;如果docker0网络地址&#xff0c;和PC主机的网络地址冲突了&#xff0c;需要变更docker的网络地址&#xff1a; root/home/mysqlPcap/anti-tamper $ cat /etc/docker/daemon.js…

【计算机网络】从输入URL到页面都显示经历了什么??

文字总结 ① DNS 解析&#xff1a;当用户输入一个网址并按下回车键的时候&#xff0c;浏览器获得一个域名&#xff0c;而在实际通信过程中&#xff0c;我们需要的是一个 IP 地址&#xff0c;因此我们需要先把域名转换成相应 IP 地址。浏览器会首先从缓存中找是否存在域名&…

【C语言】memmove()函数(拷贝重叠内存块函数详解)

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:C语言 ⚙️操作环境:Visual Studio 2022 目录 一.memmove()函数简介 1.函数功能 2.函数参数 1>.void * destination 2>.onst void * source 3>.size_t num 3.函数返回值 4.函数头文件 二.memmove()函数…

centos 8 yum源不能使用问题

问题&#xff1a;新安装的centos 8 不能使用wget就不能下载和安装其他的软件 错误&#xff1a;为仓库 appstream 下载元数据失败 : Cannot prepare internal mirrorlist: No URLs in mirrorlist 解决&#xff1a; [rootlocalhost ~]# cd /etc/yum.repos.d [rootlocalhost yu…

简历自动生成工具

简历自动生成工具 简历自动生成工具&#xff0c;可根据提供的关键字生成完整内容&#xff0c;并应用于多个模板中。避免想更换简历风格的小伙伴&#xff0c;重复编辑简历的烦恼。 使用方法 每个求职者都需要认真对待自己的简历&#xff0c;特别是那些实力还不错的&#xff0c…

JavaScript在IE和标准浏览器下的兼容性处理

目录 ​编辑 前言 1. 事件对象的获取 2. 获取浏览器窗口的宽度和高度 3. 获取事件的目标元素 4. 阻止事件的默认行为 5. 阻止事件冒泡 6. 设置和获取元素的属性 7. 类名的操作 8. AJAX的兼容性处理 9. DOM元素的操作 10. 样式的获取和设置 总结 前言 在Web开发中…

第2篇 机器学习基础 —(2)分类和回归

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。机器学习中的分类和回归都是监督学习的问题。分类问题的目标是将输入数据分为不同的类别&#xff0c;而回归问题的目标是预测一个连续的数值。分类问题输出的是物体所属的类别&#xff0c;而回归问题输出的是数值。本节课就…

AR眼镜安卓主板,智能眼镜光机方案定制

AR智能眼镜是一项涉及广泛技术的创新产品&#xff0c;它需要考虑到光学、显示、功耗、散热、延迟、重量以及佩戴人体工学等多个方面的因素&#xff0c;每一个项目都是技术进步所需攻克的难题。 在本文中&#xff0c;我们将重点讨论AR眼镜的主板和光学方案。 首先是AR智能眼镜的…

非侵入式负荷检测与分解:电力数据挖掘新视角

电力数据挖掘 概述案例背景分析目标分析过程数据准备数据探索缺失值处理 属性构造设备数据周波数据模型训练 性能度量推荐阅读 主页传送门&#xff1a;&#x1f4c0; 传送 概述 摘要&#xff1a;本案例将根据已收集到的电力数据&#xff0c;深度挖掘各电力设备的电流、电压和功…

​Vue2【双向数据绑定/响应式原理】

目录 初始化 initProps()&#xff1a;父组件传的 props 列表&#xff0c;proxy() 把属性代理到当前实例上 vm._props.xx 变成 vm.xx initData()&#xff1a;判断data和props、methods是否重名&#xff0c;proxy() 把属性代理到当前实例上 this.xx observe()&#xff1a;给…

Linux设置命令开机自动执行

~/.bash_profile完整的命令占用一行&#xff0c;开机自动执行

前端工程化面试题及答案【集合】

前言&#xff1a; 欢迎浏览和关注本专栏《 前端就业宝典 》&#xff0c; 不管是扭螺丝还是造火箭&#xff0c; 多学点知识总没错。 这个专栏是扭螺丝之上要造火箭级别的知识&#xff0c;会给前端工作学习的小伙伴带来意想不到的帮助。 本专栏将前端知识拆整为零&#xff0c;主要…

大语言模型(LLM)综述(四):如何适应预训练后的大语言模型

A Survey of Large Language Models 前言5. ADAPTATION OF LLMS5.1 指导调优5.1.1 格式化实例构建5.1.2 指导调优策略5.1.3 指导调优的效果5.1.4 指导调优的实证分析 5.2 对齐调优5.2.1 Alignment的背景和标准5.2.2 收集人类反馈5.2.3 根据人类反馈进行强化学习5.2.4 无需 RLHF…