使用 Swagger 文档为所有端点生成 Ocelot 下游路径?

问题描述 投票:0回答:2

我不知道我问的是否可能。但是我有几个 API,总共有大约 100 个端点。我们正在配置 API 以使用 Ocelot 网关,我想知道是否有一种有效的方法来生成 ocelot.json 下游设置。由于我们已经生成了 swagger 文档,是否有一个库/包可以用来使用 swagger 文档生成下游 URL?

asp.net-web-api swagger gateway ocelot
2个回答
0
投票

MMLib SwaggerForOcelot 扩展提供了一种更好的方式来记录您的下游端点。他们使用密钥来识别 ocelot 文件中的 API。也可以参考这篇文章.


0
投票

您可以使用 Swagger 页面为所有端点生成路由。

  1. 运行你的项目,让它在浏览器中打开。

  2. 打开开发者模式(例如,通过检查元素)。

  3. 在控制台中运行以下命令:

    var routes = [];
    //import jquery first.
    script = document.createElement('script');
    
    script.onload = function() {
        // jQuery is available now
    
        generateAllroutes();
    };
    
    script.type = 'text/javascript';
    script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js?v=24';
    var head = document.getElementsByTagName('head')[0];
    head.appendChild(script);
    
    function generateAllroutes() {
    
        //expanding all nodes
        $('.opblock-tag.no-desc').trigger('click');
    
        function camelize(str) {
            return str.replace(/(?:^\w|[A-Z]|\b\w)/g, function(word, index) {
                return index === 0 ? word.toLowerCase() : word.toUpperCase();
            }).replace(/\s+/g, '');
        }
    
        function capitalize(word) {
            return word.charAt(0).toUpperCase() + word.slice(1);
        }
    
        var listOpaths = $('.opblock-summary-path');
    
        for (var i = 0, len = listOpaths.length; i < len; i++) {
            var pp = $(listOpaths[i]);
            var path = pp.attr('data-path');
            var method = capitalize(pp.parent().find('.opblock-summary-method').text());
            routes.push({
                "DownstreamPathTemplate": path,
                "DownstreamScheme": "https",
                "DownstreamHostAndPorts": [{
                    "Host": "localhost",
                    "Port": 44338
                }],
                "UpstreamPathTemplate": path,
                "UpstreamHttpMethod": [method]
            });
        }
    
    
    }
    
  4. 然后路由将在路由数组中。

© www.soinside.com 2019 - 2024. All rights reserved.