Skip to content

[BUG] solon:3.8.1 solon-openapi3-knife4j 配置请求头参数不展示 #409

@echomaydays

Description

@echomaydays

关联版本

您当前正在使用我们框架的哪个版本?
solon:3.8.1 solon-openapi3-knife4j

问题描述

简要描述您碰到的问题。
启动后访问地址http://localhost:8001/client/doc.html 调试请求头部没有出现accessToken这个参数

package com.xxx.bff.app.config;

import com.github.xiaoymin.knife4j.solon.extension.OpenApiExtensionResolver;
import com.soco.common.core.result.Result;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.Components;
import io.swagger.v3.oas.models.media.StringSchema;
import io.swagger.v3.oas.models.parameters.Parameter;
import io.swagger.v3.oas.models.security.SecurityScheme;
import io.swagger.v3.oas.models.security.SecurityRequirement;
import org.noear.solon.annotation.Bean;
import org.noear.solon.annotation.Configuration;
import org.noear.solon.annotation.Inject;
import org.noear.solon.docs.DocDocket;

import java.util.List;

@Configuration
public class DocConfig {


    // knife4j 的配置,由它承载
    @Inject
    OpenApiExtensionResolver openApiExtensionResolver;

    /**
     * 商城API文档配置
     */
    @Bean("mallApi")
    public DocDocket mallApi() {
        // 创建 accessToken 请求头参数
        Parameter accessTokenParam = new Parameter()
                .name("accessToken")
                .description("用户token")
                .in("header")
                .required(false)
                .schema(new StringSchema());

        return new DocDocket()
                .vendorExtensions(openApiExtensionResolver.buildExtensions())
                .groupName("商城管理")
                .schemes("HTTP")
                .globalResult(Result.class)
                .globalResponseInData(true)
                .globalParams(List.of(accessTokenParam))
                .apis("com.xxx.bff.app.api.mall.controller")
                .upstream("http://localhost:8081", "/client", "swagger/v2?group=mallApi");
    }

    /**
     * 配置全局的 OpenAPI,添加 accessToken 认证
     */
    @Bean
    public OpenAPI customOpenApi() {
        return new OpenAPI()
                .components(new Components()
                        .addSecuritySchemes("accessToken",
                                new SecurityScheme()
                                        .type(SecurityScheme.Type.APIKEY)
                                        .in(SecurityScheme.In.HEADER)
                                        .name("accessToken")
                                        .description("用户token")))
                .addSecurityItem(new SecurityRequirement().addList("accessToken"));
    }
}

预期结果

请告诉我们您预期会发生什么。
预期需要能展示accessToken 请求头参数

实际结果

请告诉我们实际发生了什么。
目前实际没展示accessToken 请求头参数

截图或视频

如果可以的话,上传任何关于 Bug 的截图。

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions