如何使用openapi-generator(spring)检索未指定的标头

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

对于我们的REST API,我们有某些HTTP请求标头,这些标头将由基础结构组件设置,并且不应在OpenAPI规范中发布给使用者。

在我们构建(实现openapi-generator的生成接口)的基于Spring Web的实现代码中,从HTTP请求检索类似内容的正确方法是什么?例如,在接口上未指定的标头。

我在openapi-generator本身中看不到任何将HttpServletRequest作为参数添加到生成的方法的选项。我希望在Spring / Spring Web中有一种更通用的方法来处理它。

spring spring-mvc swagger-codegen openapi-generator
1个回答
0
投票

好吧,使用open-api-generator生成的Spring代码,至少在我正在使用的“委托”模式下,这看起来非常简单而优雅。

Delegate类创建一个getRequest()方法,您可以像这样简单地覆盖它:

private final NativeWebRequest nativeWebRequest;

@Override
public Optional<NativeWebRequest> getRequest() {
    return Optional.ofNullable(nativeWebRequest);
}

您可能必须将NativeWebRequest添加到构造函数中,或将其设置为@Autowired。 (我们正在使用lombok生成构造函数。)

然后在您的API方法中,您可以执行以下操作:

String headerValue = getRequest().get().getHeader("my-header-name");
© www.soinside.com 2019 - 2024. All rights reserved.