• 一、Swagger配置


    一、Swagger配置

    1、注解不显示

    SwaggerConfig文件下

      //c.IncludeXmlComments(GetXmlCommentsPath());  内下面添加:

    c.IncludeXmlComments(Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, @"binYDShengya_WebApi.xml"));
    

      

    然后报错

    未能找到输出的XML文件 -我去bin目录也没有找到

    具体解决方案:

     原本调试环境下配置的

    在发布配置下Release 也配置输出生成XML才ok

    保存即可发布-包含XML的文件 

    注意:运行时提示  

    请将注册表值 [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD)设置为 1

      即可。

    2、使用Swagger 让某些接口不显示在文档

     在Action 上加[ApiExplorerSettings(IgnoreApi = true)]

    [HttpGet] 
    [ApiExplorerSettings(IgnoreApi = true)] 
    public ActionResult Index(string appKey , string username ) 
    { 
    //todo 
    }
    

      

    3、Swagger默认路由

    Core是在StartUp.cs文件配置

    基于framework 配置swagger

      指定 route rule 使用Swashbuckle.Application.RedirectHandler,实现原理----route template 完全沒有 request 參數時導向 swagger。

    routes.MapHttpRoute(
                    name: "swagger_root",
                    routeTemplate: "",
                    defaults: null,
                    constraints: null,
                    handler: new Swashbuckle.Application.RedirectHandler((message => message.RequestUri.ToString()), "swagger")
                );
    

      

    随机更改

    config.Routes.MapHttpRoute(
        name: "swagger_root",
        routeTemplate: "",
        defaults: null,
        constraints: null,
        handler: new Swashbuckle.Application.RedirectHandler((message => message.RequestUri.ToString()), "swagger/ui/index")
    );
    

      

     这里不做随意更改直接用Swagger作为root具体代码参考

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Http;
    using System.Web.Mvc;
    using System.Web.Routing;
    
    namespace YDShengya_WebApi
    {
        /// <summary>
        /// 設定預設導向 Swashbuckle 頁面
        /// </summary>
        public class RouteConfig
        {
            /// <summary>
            /// 在 RouteConfig 中加入一組 route rule 指定 route rule 使用 Swashbuckle.Application.RedirectHandler
            /// </summary> 
            /// <param name="routes"></param>
            public static void RegisterRoutes(RouteCollection routes)
            {
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
                routes.MapHttpRoute(
                    name: "swagger_root",
                    routeTemplate: "",
                    defaults: null,
                    constraints: null,
                    handler: new Swashbuckle.Application.RedirectHandler((message => message.RequestUri.ToString()), "swagger")
                );
    
                routes.MapRoute(
                    name: "Default",
                    url: "{controller}/{action}/{id}",
                    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
                );
            }
        }
    }
    

      参考博客

    3、MVC和WebApi路由区别汇总
    
    WebApi的默认路由机制通过http请求的类型匹配Action,MVC的默认路由机制通过url匹配Action
    WebApi的路由配置文件是WebApiConfig.cs,MVC的路由配置文件是RouteConfig.cs
    WebApi的Controller继承自Web.Http.ApiController,MVC的Controller继承自Web.Mvc.Controller
    

      

    C# swagger 隐藏接口或分组
    // 隐藏
    
     [ApiExplorerSettings(IgnoreApi = true)]
    
    // 分组
    
     [ApiExplorerSettings(groupName="xxxx")]
  • 相关阅读:
    读取points文件
    JSP语法1
    servlet与SSI
    JDBC连接数据库
    django开发Blog(2)
    django开发Blog(1)
    JSP学习2:useBean动作标签
    django开发Blog(4)
    Servelet基础
    servlet会话管理2
  • 原文地址:https://www.cnblogs.com/fger/p/10710131.html
Copyright © 2020-2023  润新知