我正在使用springdoc并尝试在我的项目中配置swagger。我有一个身份验证端点,想在swaggerui页面执行请求。swagger正确显示端点路径: /api/v1/auth
,但当我试图在“try it out”菜单执行请求时,它会将请求发送到 http://localhost:8080/v3/api-docs/localhost/api/v1/auth
.
以下是示例:
下面是我在swagger中生成的curl连接字符串:
curl -X 'POST' \
'http://localhost:8080/v3/api-docs/localhost/api/v1/auth' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"username": "string",
"password": "string"
}'
和配置bean:
@Configuration
public class SwaggerConfiguration {
@Bean
public GroupedOpenApi publicUserApi() {
return GroupedOpenApi.builder()
.group("Api")
.pathsToMatch("/api/**")
.build();
}
@Bean
public OpenAPI customOpenApi() {
return new OpenAPI()
.info(new Info().title("Application API"))
.servers(List.of(new Server().url("localhost").description("Server")));
}
}
提前谢谢你的帮助
1条答案
按热度按时间xesrikrc1#
问题是由于您将服务器url设置为
localhost
而不是http://localhost
当您在没有协议的情况下指定路径时,它总是作为页面当前url的相对路径,在本例中是http://localhost:8080/v3/api-docs
.用协议更新openapi bean以反映url应该可以解决这个问题。
我已将端口号明确指定为
8080
为了清楚起见。