117.info
人生若只如初见

centos swagger调试技巧

在CentOS系统上调试Swagger主要涉及到安装和配置Swagger相关工具,以及使用这些工具进行API文档生成和测试。以下是一些有用的技巧和步骤:

安装Swagger

  1. 安装Node.js和npm
yum install -y nodejs npm
  1. 安装Swagger Editor和Swagger UI
mkdir /opt/swagger
cd /opt/swagger
wget https://github.com/swagger-api/swagger-editor/archive/refs/tags/v3.14.0.tar.gz
tar -xzf v3.14.0.tar.gz
cd swagger-editor-3.14.0
npm install -g http-server
http-server -p 8080

访问 http://localhost:8080 确认可以访问。

  1. 安装Swagger Codegen(可选):
go get -u github.com/swaggo/swag/cmd/swag

配置Swagger

  1. 添加Swagger依赖(以Spring Boot为例):
@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
            .select()
            .apis(RequestHandlerSelectors.basePackage("com.example.demo"))
            .paths(PathSelectors.any())
            .build()
            .globalOperationParameters(parameterBuilder());
    }

    private ParameterBuilder parameterBuilder() {
        ParameterBuilder ticketPar = new ParameterBuilder();
        List pars = new ArrayList<>();
        ticketPar.name("token")
            .description("用户票据")
            .modelRef(new ModelRef("string"))
            .parameterType("header")
            .required(false)
            .build();
        pars.add(ticketPar.build());
        return ticketPar;
    }
}
  1. 访问Swagger UI

启动Spring Boot应用后,访问 http://localhost:8080/swagger-ui.html

调试技巧

  1. 使用Swagger Editor快速生成API文档
  • 下载Swagger定义文件(swagger.yamlswagger.json)。
  • 在Swagger Editor中导入该文件,即可快速生成API文档。
  1. 自动化授权

编辑 custom.js 文件,自动获取并设置token:

const originalFetch = window.fetch;
window.fetch = function(...args) {
    const [resource, config] = args;
    return originalFetch.apply(this, args).then(response => {
        const requestUrl = new URL(response.url, window.location.origin).pathname;
        if (requestUrl.endsWith("/login")) {
            return response.clone().json().then(data => {
                const token = data.result.token;
                if (token) {
                    console.log("Token received via fetch override:", token);
                    authorizeSwagger(token);
                } else {
                    console.warn("Token not found in login response.");
                }
                return response;
            });
        }
        return response;
    });
};

function authorizeSwagger(token) {
    const bearerToken = 'Bearer ' + token;
    console.log("Setting Swagger UI Authorization with token:", bearerToken);
    if (window.ui && window.ui.authActions) {
        window.ui.authActions.authorize({
            Bearer: {
                name: 'Bearer',
                schema: {
                    type: 'apiKey',
                    in: 'header',
                    name: 'Authorization',
                    description: 'Value: ' + bearerToken,
                },
            },
        });
        console.log("Authorization set successfully");
    } else {
        console.warn("Swagger UI authActions not available yet.");
    }
}

custom.js 文件放入 swagger-ui/wwwroot 目录下,并启用静态文件服务。

  1. 结合Burp Suite进行安全测试

使用Burp Suite作为上游代理,捕获Swagger UI的请求并测试接口安全性。

通过以上步骤和技巧,可以在CentOS系统上高效地调试Swagger,确保API文档的准确性和安全性。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fedbaAzsKAgdRBlc.html

推荐文章

  • CentOS readdir与readdir_r的区别

    readdir 和 readdir_r 都是用于读取目录内容的函数,但它们之间存在一些关键区别: 线程安全性:
    readdir 是一个非线程安全的函数。在多线程环境中,如果多...

  • 如何使用CentOS readdir遍历目录

    在 CentOS 系统中,你可以使用 readdir 函数来遍历目录
    首先,确保你已经安装了必要的开发工具和库。在 CentOS 上,你可以使用以下命令安装它们:
    sud...

  • CentOS readdir错误处理策略

    在CentOS系统中,当使用readdir函数读取目录时,可能会遇到各种错误。为了确保程序的稳定性和可靠性,需要对这些错误进行适当的处理。以下是一些常见的readdir错...

  • CentOS readdir返回值解析方法

    在 CentOS 系统中,readdir 函数用于读取目录中的文件和子目录。它通常与 opendir 和 closedir 函数一起使用。readdir 函数的返回值是一个指向 dirent 结构的指针...

  • centos swagger示例代码

    在CentOS上使用Swagger(现在通常指的是OpenAPI Specification的实现,如Swagger UI和Swagger Editor)来创建和展示API文档是一个常见的做法。以下是一个简单的示...

  • centos swagger依赖管理

    在CentOS系统中,Swagger的依赖管理通常涉及到几个关键组件:Java开发环境、Maven或Gradle构建工具,以及Swagger相关的库。以下是详细的步骤和说明:
    1. 安...

  • centos swagger更新日志

    很抱歉,目前无法提供 CentOS Swagger 的更新日志信息。但可以提供 CentOS 系统应急响应方法以及常见日志文件及路径介绍供您参考:
    CentOS 系统应急响应方法...

  • centos swagger常见问题

    在CentOS系统上使用Swagger时,可能会遇到一些常见问题。以下是一些常见问题的解决方案: Swagger无法正常打开: 问题描述:访问swagger UI页面时,可能会遇到40...