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

2022-10-12,,,,

现象:

项目中导入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()));

 

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

下载本文的Word格式文档,以方便收藏与打印。