• Asp.net core Web Api 配置swagger中文


    启动项目,如图:

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

    1创建model实体

    1. namespace HouseSysWebApplication.Model
    2. {
    3. ///
    4. /// 图片实体类
    5. ///
    6. public class Book
    7. {
    8. ///
    9. /// 编号
    10. ///
    11. public int id { get; set; }
    12. ///
    13. /// 书名
    14. ///
    15. public string title { get; set; }
    16. ///
    17. /// 作者
    18. ///
    19. public string author { get; set; }
    20. ///
    21. /// 价格
    22. ///
    23. public float price { get; set; }
    24. ///
    25. /// 图片地址
    26. ///
    27. public string image { get; set; }
    28. }
    29. }

    2 添加控制器BookController

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

    1. using HouseSysWebApplication.Model;
    2. using Microsoft.AspNetCore.Http;
    3. using Microsoft.AspNetCore.Mvc;
    4. namespace HouseSysWebApplication.Controllers
    5. {
    6. ///
    7. /// 图书控制器
    8. ///
    9. [Route("api/[controller]")]
    10. [ApiController]
    11. public class BookController : ControllerBase
    12. {
    13. List bookList = InitBookStore();
    14. private static List InitBookStore()
    15. {
    16. List bookList = new List();
    17. Book b1 = new Book();
    18. b1.id = 101;
    19. b1.author = "杨康";
    20. b1.title = "Java从入门到精通";
    21. b1.price = 89.5f;
    22. b1.image = "img01.jpg";
    23. bookList.Add(b1);
    24. Book b2 = new Book();
    25. b2.id = 102;
    26. b2.author = "天涯";
    27. b2.title = "Java项目开发实战入门";
    28. b2.price = 49.5f;
    29. b2.image = "img02.jpg";
    30. bookList.Add(b2);
    31. Book b3 = new Book();
    32. b3.id = 103;
    33. b3.author = "标贵";
    34. b3.title = "Java编程思想";
    35. b3.price = 76f;
    36. b3.image = "img03.jpg";
    37. bookList.Add(b3);
    38. Book b4 = new Book();
    39. b4.id = 104;
    40. b4.author = "西法";
    41. b4.title = "web开发手册";
    42. b4.price = 78.3f;
    43. b4.image = "img04.jpg";
    44. bookList.Add(b4);
    45. Book b5 = new Book();
    46. b5.id = 105;
    47. b5.author = "海风";
    48. b5.title = "唐诗宋词";
    49. b5.price = 29.5f;
    50. b5.image = "img05.jpg";
    51. bookList.Add(b5);
    52. return bookList;
    53. }
    54. ///
    55. /// 获取所有图书
    56. ///
    57. /// 图书列表
    58. [HttpGet("all")]
    59. public List BookStore()
    60. {
    61. return bookList;
    62. }
    63. ///
    64. /// 查询指定名称的图书
    65. ///
    66. /// 图书标题
    67. /// 图书列表
    68. [HttpGet("search")]
    69. public IEnumerable BookStore(string bookName)
    70. {
    71. return bookList.FindAll(x => x.title.Contains(bookName)).AsEnumerable();
    72. }
    73. }
    74. }

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

    3 生成xml文档

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

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

    1. "1.0"?>
    2. <doc>
    3. <assembly>
    4. <name>HouseSysWebApplicationname>
    5. assembly>
    6. <members>
    7. <member name="T:HouseSysWebApplication.Controllers.BookController">
    8. <summary>
    9. 图书控制器
    10. summary>
    11. member>
    12. <member name="M:HouseSysWebApplication.Controllers.BookController.BookStore">
    13. <summary>
    14. 获取所有图书
    15. summary>
    16. <returns>图书列表returns>
    17. member>
    18. <member name="M:HouseSysWebApplication.Controllers.BookController.BookStore(System.String)">
    19. <summary>
    20. 查询指定名称的图书
    21. summary>
    22. <param name="bookName">图书标题param>
    23. <returns>图书列表returns>
    24. member>
    25. <member name="T:HouseSysWebApplication.Model.Book">
    26. <summary>
    27. 图片实体类
    28. summary>
    29. member>
    30. <member name="P:HouseSysWebApplication.Model.Book.id">
    31. <summary>
    32. 编号
    33. summary>
    34. member>
    35. <member name="P:HouseSysWebApplication.Model.Book.title">
    36. <summary>
    37. 书名
    38. summary>
    39. member>
    40. <member name="P:HouseSysWebApplication.Model.Book.author">
    41. <summary>
    42. 作者
    43. summary>
    44. member>
    45. <member name="P:HouseSysWebApplication.Model.Book.price">
    46. <summary>
    47. 价格
    48. summary>
    49. member>
    50. <member name="P:HouseSysWebApplication.Model.Book.image">
    51. <summary>
    52. 图片地址
    53. summary>
    54. member>
    55. members>
    56. doc>

    4修改Program.cs

    只要改一个地方就行

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

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

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

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

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

     6、IIS操作

    7、修改web.config文件

    原来是这样的

    1. "1.0" encoding="utf-8"?>
    2. <configuration>
    3. <location path="." inheritInChildApplications="false">
    4. <system.webServer>
    5. <handlers>
    6. <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
    7. handlers>
    8. <aspNetCore processPath="dotnet" arguments=".\HouseSysWebApplication.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
    9. system.webServer>
    10. location>
    11. configuration>

    增加一个内容

    完整的内容是这样的

    1. "1.0" encoding="utf-8"?>
    2. <configuration>
    3. <location path="." inheritInChildApplications="false">
    4. <system.webServer>
    5. <handlers>
    6. <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
    7. handlers>
    8. <aspNetCore processPath="dotnet" arguments=".\HouseSysWebApplication.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" >
    9. <environmentVariables>
    10. <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
    11. environmentVariables>
    12. aspNetCore>
    13. system.webServer>
    14. location>
    15. <system.webServer>
    16. <defaultDocument>
    17. <files>
    18. <clear />
    19. <add value="index.htm" />
    20. <add value="Default.htm" />
    21. <add value="Default.asp" />
    22. <add value="index.html" />
    23. <add value="iisstart.htm" />
    24. files>
    25. defaultDocument>
    26. system.webServer>
    27. configuration>

    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中添加一下代码

    1. <environmentVariables>
    2. <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
    3. 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通用)”这小节的操作步骤。
     

  • 相关阅读:
    2. 在STM32CubeMX建立的Keil5工程中添加自定义的相关文件
    Matlab:指定时区
    Go语言相比较于Python的优势
    Java毕业设计 基于SSM的网上图书商城系统
    Spring拦截器HandlerInterceptor和HandlerInterceptorAdapter
    深度剖析集成学习GBDT
    MATLAB2016笔记(八):符号数学计算(MATLAB-Maple组件)
    Redis 过期删除策略和内存淘汰策略
    精品SpringCloud的高校招生信息管理系统-微服务分布式
    kali linux系统选用gnome桌面安装完成后无法调节屏幕亮度踩坑过程( 2301_77564090)
  • 原文地址:https://blog.csdn.net/zgscwxd/article/details/133843380