3

我正在使用 Swagger UI 3.0 来调用此处列出的端点 API。要调用 api,我必须在标头中添加身份验证。我们有 javascript 将身份验证添加到 swagger UI,这将身份验证全局添加到 Swagger UI 2.0 版本的 swagger UI 中的所有 API。所以这样,我不必在招摇 UI 中单击“授权”按钮来在标题中添加身份验证令牌。

但最近我们转向了新的 swagger 3.0 版本。结果,这个 javascript 不再工作了。

有没有办法在 Swagger UI 3.0 中使用任何 javascript 添加 Bearer auth 的标头,而不是单击“授权”按钮。

我问这个是因为每次打开 swagger UI 来调用 API 时手动添加身份验证真的很烦人。

我不想单击下面的授权按钮来添加 Auth 标头。相反,我想使用一些 javascirpt 添加它。 在此处输入图像描述 在此处输入图像描述

4

1 回答 1

0

在 Swagger 3.0.0 中,不推荐使用 globalOperationParameters。使用 globalRequestParameters 代替它。下面是片段。

@Bean
public Docket api() {
    return new Docket(DocumentationType.SWAGGER_2)
        .apiInfo(apiInfo())
        .select()
        .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
        .paths(PathSelectors.any())
        .build()
        .globalRequestParameters(newArrayList(authorizationHeader()))
        .protocols(Sets.newHashSet("http", "https"));
}

private RequestParameter authorizationHeader() {

    return new RequestParameterBuilder()
        .name("Authorization")
        .description("Authorization header")
        .in(ParameterType.HEADER)
        .required(false)
        .build();
}
于 2021-03-04T11:21:18.800 回答