使用Scalar.AspNetCore来管理你的OpenApi(二)

这是一个上一篇的补充文档,感谢@TopStop回复的内容,上篇中提到了在.net 10中,多了一个xml文档注释的支持

使用Scalar.AspNetCore来管理你的OpenApi

 

官方参考

https://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/openapi/openapi-comments?view=aspnetcore-10.0

启用xml文档支持方法

在项目文件中启用 XML 文档

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net10.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
  </PropertyGroup>

</Project>

或者在VS里,项目——项目属性——生成——输出——勾选“文档文件”

屏幕截图 2025-12-13 162428

下面编辑正常的注释,就会生成为API文档了。

屏幕截图 2025-12-13 161740

 

namespace WebApplication1
{
    /// <summary>
    /// 获取城市天气
    /// </summary>
    /// <remarks>获取天气情况</remarks>
    public class WeatherForecast
    {
        /// <summary>
        /// 日期
        /// </summary>
        /// <remarks>日期</remarks>
        public DateOnly Date { get; set; }

        /// <summary>
        /// 摄氏度
        /// </summary>
        /// <remarks>摄氏度</remarks>
        public int TemperatureC { get; set; }

        /// <summary>
        /// 华氏度
        /// </summary>
        /// <remarks>华氏度</remarks>
        public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);

        /// <summary>
        /// 总结
        /// </summary>
        /// <remarks>总结</remarks>
        public string? Summary { get; set; }
        /// <summary>
        /// 参数
        /// </summary>
        /// <remarks>参数</remarks>
        public int id {  get; set; }
    }
}

 

/// <summary>
/// 获取城市天气
/// </summary>
/// <remarks>获取天气情况</remarks>
/// <param name="id">城市名称</param>
/// <response code="200">正常返回.</response>
/// <response code="404">出错返回.</response>
/// <example>{"name":"Sample","value":42}</example>
/// <param name="id" example="42">The unique identifier</param>
[HttpGet(Name = "GetWeatherForecast")]

public IEnumerable<WeatherForecast> Get()
{
    return Enumerable.Range(1, 5).Select(index => new WeatherForecast
    {
        Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
        TemperatureC = Random.Shared.Next(-20, 55),
        Summary = Summaries[Random.Shared.Next(Summaries.Length)]
    })
    .ToArray();
}

 

posted @ 2025-12-13 16:31  wangbin5542  阅读(22)  评论(0)    收藏  举报