Asp.net core Web Api 配置swagger中文

启动项目,如图:

原来是英文的,我们要中文的,WeatherForecastController.cs是一个示例,删除即可,WeatherForecast.cs同时删除,当然不删除也行,这里是删除,创建自己的控制器

1创建model实体

namespace HouseSysWebApplication.Model
{///<summary>/// 图片实体类/// </summary>public class Book{/// <summary>/// 编号/// </summary>public int id { get; set; }/// <summary>/// 书名/// </summary>public string title { get; set; }/// <summary>/// 作者/// </summary>public string author { get; set; }/// <summary>/// 价格/// </summary>public float price { get; set; }/// <summary>/// 图片地址/// </summary>public string image { get; set; }}}

2 添加控制器BookController

Controller文件夹上右键,选择“添加”,选择“控制器”,选择API,

using HouseSysWebApplication.Model;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;namespace HouseSysWebApplication.Controllers
{/// <summary>/// 图书控制器/// </summary>[Route("api/[controller]")][ApiController]public class BookController : ControllerBase{List<Book> bookList = InitBookStore();private static List<Book> InitBookStore(){List<Book> bookList = new List<Book>();Book b1 = new Book();b1.id = 101;b1.author = "杨康";b1.title = "Java从入门到精通";b1.price = 89.5f;b1.image = "img01.jpg";bookList.Add(b1);Book b2 = new Book();b2.id = 102;b2.author = "天涯";b2.title = "Java项目开发实战入门";b2.price = 49.5f;b2.image = "img02.jpg";bookList.Add(b2);Book b3 = new Book();b3.id = 103;b3.author = "标贵";b3.title = "Java编程思想";b3.price = 76f;b3.image = "img03.jpg";bookList.Add(b3);Book b4 = new Book();b4.id = 104;b4.author = "西法";b4.title = "web开发手册";b4.price = 78.3f;b4.image = "img04.jpg";bookList.Add(b4);Book b5 = new Book();b5.id = 105;b5.author = "海风";b5.title = "唐诗宋词";b5.price = 29.5f;b5.image = "img05.jpg";bookList.Add(b5);return bookList;}/// <summary>/// 获取所有图书/// </summary>/// <returns>图书列表</returns>[HttpGet("all")]public List<Book> BookStore(){return bookList;}/// <summary>/// 查询指定名称的图书/// </summary>/// <param name="bookName">图书标题</param>/// <returns>图书列表</returns>[HttpGet("search")]public IEnumerable<Book> BookStore(string bookName){return bookList.FindAll(x => x.title.Contains(bookName)).AsEnumerable();}}
}

这里要注意的是代码的完整注释要写上,既然是写接口,生成的文档所以要详细,可读性强,启动后效果

3 生成xml文档

项目右键,选择属性,点击生成,勾选

将项目编译生成,就会自动创建xml文档

<?xml version="1.0"?>
<doc><assembly><name>HouseSysWebApplication</name></assembly><members><member name="T:HouseSysWebApplication.Controllers.BookController"><summary>图书控制器</summary></member><member name="M:HouseSysWebApplication.Controllers.BookController.BookStore"><summary>获取所有图书</summary><returns>图书列表</returns></member><member name="M:HouseSysWebApplication.Controllers.BookController.BookStore(System.String)"><summary>查询指定名称的图书</summary><param name="bookName">图书标题</param><returns>图书列表</returns></member><member name="T:HouseSysWebApplication.Model.Book"><summary>图片实体类</summary></member><member name="P:HouseSysWebApplication.Model.Book.id"><summary>编号</summary></member><member name="P:HouseSysWebApplication.Model.Book.title"><summary>书名</summary></member><member name="P:HouseSysWebApplication.Model.Book.author"><summary>作者</summary></member><member name="P:HouseSysWebApplication.Model.Book.price"><summary>价格</summary></member><member name="P:HouseSysWebApplication.Model.Book.image"><summary>图片地址</summary></member></members>
</doc>

4修改Program.cs

只要改一个地方就行

builder.Services.AddSwaggerGen(c =>
{c.SwaggerDoc("v1", new OpenApiInfo { Title = "微信小程序后端api文档", Version = "v1" });// var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location);//获取应用程序所在目录(绝对,不受工作目录影响,建议采用此方法获取路径)// var xmlPath = Path.Combine(basePath, "HouseSysWebApplication.xml");var xmlPath = Path.Combine(AppContext.BaseDirectory, "HouseSysWebApplication.xml");c.IncludeXmlComments(xmlPath, true);//true:显示控制器注释c.OrderActionsBy(o => o.RelativePath);//action名称排序
});

5编译生成,启动,看效果,立马中文

选择某个接口,比如第1个

,点击测试,没有问题,说明一切杠杠的

注释没有问题,相当的帅,单独访问也正常

 6、IIS操作

7、修改web.config文件

原来是这样的

<?xml version="1.0" encoding="utf-8"?>
<configuration><location path="." inheritInChildApplications="false"><system.webServer><handlers><add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" /></handlers><aspNetCore processPath="dotnet" arguments=".\HouseSysWebApplication.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" /></system.webServer></location>
</configuration>
<!--ProjectGuid: b0eb1c5f-e8f5-4e0e-9968-c58f6c4d78db-->

增加一个内容

完整的内容是这样的

<?xml version="1.0" encoding="utf-8"?>
<configuration><location path="." inheritInChildApplications="false"><system.webServer><handlers><add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" /></handlers><aspNetCore processPath="dotnet" arguments=".\HouseSysWebApplication.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" ><environmentVariables><environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" /></environmentVariables></aspNetCore></system.webServer></location><system.webServer><defaultDocument><files><clear /><add value="index.htm" /><add value="Default.htm" /><add value="Default.asp" /><add value="index.html" /><add value="iisstart.htm" /></files></defaultDocument></system.webServer>
</configuration>
<!--ProjectGuid: b0eb1c5f-e8f5-4e0e-9968-c58f6c4d78db-->

8、修改网站默认首页

NetCore6.0 WebApi 发布IIS服务器后网站无法打开报404问题处理

情况介绍:
新建了个.NetCore 5.0 的 WebAPI项目,发布部署到WINDOWS10 的 IIS后,默认打开 http://127.0.0.1/swagger 出现404找不到页面的错误。

原因:
因为.NetCore 5.0 自带集成了Swagger , 在发布项目时,通常会在代码中限制ASPNETCORE_ENVIRONMENT为Production时关闭Swagger。


 

解决方法:
项目发布后默认为 Production 生产环境,可修改 web.config 文件,改成 Development 开发环境就可以访问。
具体方法如下:在web.config中添加一下代码

	<environmentVariables><environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" /></environmentVariables>

C#编写ASP.NET Core的Web API并部署到IIS的部署方法及常见问题,原文链接

C#编写ASP.NET Core的Web API并部署到IIS上的详细教程(API用于准确获取Word/Excel/PPT/PDF的页数)6 -将项目部署到IIS,及常见错误解决方案_.net core 动态生成 word 接口-CSDN博客

6.2 网页报错“HTTP 错误 500.19 - Internal Server Error ”
IIS网站创建好后,点击浏览网站,浏览器页面报错“HTTP 错误 500.19 - Internal Server Error ”。

这个问题的原因是当前运行环境没有安装AspNetCoreModule。

请参考本文:
“4.4 安装AspNetCoreModule(Win10/Server通用)”这小节的操作步骤。
 

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

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

相关文章

在不安全的集群上启用 Elasticsearch Xpack 安全性

本博文详细描述如何把一个没有启动安全的 Elasticsearch 集群升级为一个带有 HTTPS 访问的启用 Elasticsearch xpack 安全的集群。 为了增强 Elasticsearch 集群的安全性&#xff0c;你需要执行完全集群重启&#xff0c;并在客户端进行一些更改。 启用身份验证后&#xff0c;所…

linux环境下使用lighthouse与selenium

一、安装谷歌浏览器、谷歌浏览器驱动、lighthouse shell脚本 apt update && apt -y upgrade apt install -y curl curl -fsSL https://deb.nodesource.com/setup_18.x | bash apt install -y nodejs apt install -y npm npm install -g lighthouse apt-get install -y …

vue 01

安装vscode 按照如下方式汉化 给vscode 安装插件 Vetur 安装node.js 下载地址https://nodejs.org/en/download/&#xff0c;选择windows msi 在cmd下检查如下&#xff1a; 检查nodejs版本:node --version 检查npm的安装版本&#xff1a;npm -v 执行命令&#xff1a; npm i…

【机器学习】PyTorch-MNIST-手写字识别

文章目录 前言完成效果一、下载数据集手动下载代码下载MNIST数据集&#xff1a; 二、 展示图片三、DataLoader数据加载器四、搭建神经网络五、 训练和测试第一次运行&#xff1a; 六、优化模型第二次优化后运行&#xff1a; 七、完整代码八、手写板实现输入识别功能 前言 注意…

Android12之报错 error: BUILD_COPY_HEADERS is obsolete(一百六十七)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

OTN较WDM系统的 升级功能

文章目录 1、增加运维规则&#xff0c;具体措施是增加了帧结构&#xff0c;提升业务的监控管理运维能力。2、增加电交叉功能&#xff0c;使得OTN系统可以分别处理客户业务信号和波分信号。 OTN较WDM系统的 升级功能主要表现在下面两方面&#xff1a; 1、增加运维规则&#xff0…

leetcode:507. 完美数(python3解法)

难度&#xff1a;简单 对于一个 正整数&#xff0c;如果它和除了它自身以外的所有 正因子 之和相等&#xff0c;我们称它为 「完美数」。 给定一个 整数 n&#xff0c; 如果是完美数&#xff0c;返回 true&#xff1b;否则返回 false。 示例 1&#xff1a; 输入&#xff1a;num…

power point导出pdf保留字体

在 slides 中用到非自带的字体&#xff0c;如 [1]&#xff0c;想导出成 pdf 文件&#xff08;因为导出成图&#xff0c;如 png&#xff0c;放大会蒙&#xff09;&#xff0c;并在别人电脑里也保留字体。除了让别人也装上相应字体&#xff0c;可以&#xff1a; 参考 [2]&#x…

OpenHarmony页面级UI状态存储:LocalStorage

LocalStorage 是页面级的 UI 状态存储&#xff0c;通过 Entry 装饰器接收的参数可以在页面内共享同一个 LocalStorage 实例。LocalStorage 也可以在 UIAbility 内&#xff0c;页面间共享状态。 本文仅介绍 LocalStorage 使用场景和相关的装饰器&#xff1a;LocalStorageProp 和…

关于RNNoise、webrtc_ns、三角带通滤波器、对数能量

语音特征参数MFCC提取过程详解 其中讲解了&#xff1a;三角带通滤波器 、计算每个滤波器组输出的对数能量、对数能量、经离散余弦变换&#xff08;DCT&#xff09;得到MFCC系数 推荐阅读某乎这位大佬的全部文章&#xff1a; 下面是几篇出自这位大佬的很好的文章&#xff1a; …

Java前后端交互实现班级管理(查询)

1&#xff0c;数据库创建存储专业信息的表 2&#xff0c;后端&#xff1a; 连接数据库工具类DBUtil.java&#xff1a; package com.ffyc.webserver.util;import java.sql.*;public class DButils {static {try {Class.forName("com.mysql.cj.jdbc.Driver");} catch…

静态IP怎么设置网速快?

随着互联网的普及&#xff0c;越来越多的人需要连接到互联网。大多数人使用动态IP来连接&#xff0c;但有时您可能需要使用静态IP。如果您使用静态IP&#xff0c;那么您需要设置一个静态IP地址。这通常是在路由器或计算机上完成的。 首先&#xff0c;您需要了解什么是静态IP地址…

iOS——Manager封装网络请求

在之前的项目里&#xff0c;我们都是把网络请求写在viewController的viewDidLoad&#xff0c;而实际中使用的时候并不能这么简单&#xff0c;对于不同的需要&#xff0c;我们需要有不同的网络请求。所以我们可以用单例模式创建一个全局的Manager类&#xff0c;用实例Manager来执…

Prompt 驱动架构设计:探索复杂 AIGC 应用的设计之道?

你是否曾经想过&#xff0c;当你在 Intellij IDEA 中输入一个段代码时&#xff0c;GitHub 是如何给你返回相关的结果的&#xff1f;其实&#xff0c;这背后的秘密就是围绕 Prompt 生成而构建的架构设计。 Prompt 是一个输入的文本段落或短语&#xff0c;用于引导 AI 生成模型执…

21.Hadoop在Windows环境下的下载安装配置超详细版

Hadoop在Windows环境下的下载安装配置超详细版 本文章所需下载安装软件&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1jIQyy0VHuPvQZ8-n_Zq0pg?pwd1017 hadoop的Windows化安装步骤是非常麻烦的&#xff0c;如果有一步出错将导致得充头从来。 环境配置 前置依赖1&…

Bootstrap的警告框组件

可以利用类alert实现警告框组件。。 01-基本的警告框组件使用示例 示例代码如下&#xff1a; <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>警告框</title><meta name"viewport" content"wi…

vite 使用本地 ip + localhost 访问服务

vite 使用本地 ip localhost 访问服务 在 vite.config.js 中&#xff0c;如果未配置 server.host&#xff0c;默认服务将以 localhost 进行启动&#xff0c;此时我们可以通过 localhost:port 或 127.0.0.1:port 进行应用访问。 import { resolve } from path function pathRes…

Hadoop3教程(九):MapReduce框架原理概述

文章目录 简介参考文献 简介 这属于整个MR中最核心的一块&#xff0c;后续小节会展开描述。 整个MR处理流程&#xff0c;是分为Map阶段和Reduce阶段。 一般&#xff0c;我们称Map阶段的进程是MapTask&#xff0c;称Reduce阶段是ReduceTask。 其完整的工作流程如图&#xff…

开源酒店预订订房小程序源码系统+多元商户 前端+后端完整搭建教程 可二次开发

大家好啊&#xff0c;罗峰今天来给大家分享一款酒店预订订房小程序源码系统&#xff0c;这款系统进行了全新的升级&#xff0c;从原来的单门店升级成了多门店&#xff0c;可以自由切换账号&#xff0c;统一管理。功能强大。以下是部分代码截图&#xff1a; 酒店预订订房小程序源…

【数据结构】算法、时间复杂度和空间复杂度详解 ------ 算法篇

文章目录 &#x1f4cb;前言一. ⛳️算法的定义二. ⛳️算法的特性2.1 输入输出2.2 输入输出2.3 有穷性2.4 确定性2.5 可行性 三. ⛳️算法设计要求3.1 正确性3.2 可读性3.2 健壮性3.3 时间效率高和存储量低 四. ⛳️算法效率的度量方法4.1 事后统计方法4.2 事前分析估算方法 五…