欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

.Netcore Swagger - 解决外部库导致的“Actions require an explicit HttpMethod binding for Swagger 2.0”

程序员文章站 2022-04-26 21:46:46
现象: 项目中导入Ocelot后,swagger页面无法正常显示,查看异常发现 Ocelot.Raft.RaftController 中的 Action 配置不完全,swagger扫描时不能正确生成 swagger.json 解决方法: 在扫描中隐藏Ocelot的controller,避免被swag ......

现象:

项目中导入ocelot后,swagger页面无法正常显示,查看异常发现 ocelot.raft.raftcontroller 中的 action 配置不完全,swagger扫描时不能正确生成 swagger.json

解决方法:

在扫描中隐藏ocelot的controller,避免被swagger生成文档

创建apiexplorerignores

    public class apiexplorerignores : iactionmodelconvention
    {
        /// <summary>
        /// ocelot自带的controller与swagger2.0冲突,在此排除扫描
        /// </summary>
        /// <param name="action"></param>
        public void apply(actionmodel action)
        {
            //冲突的ocelot.raft.raftcontroller
            if (action.controller.controllername.equals("raft"))
                action.apiexplorer.isvisible = false;
            //ocelot.cache.outputcachecontroller
            if (action.controller.controllername.equals("outputcache"))
                action.apiexplorer.isvisible = false;
        }
    }

 

setup.cs中添加

services.addmvc(c => c.conventions.add(new apiexplorerignores()));