标签: swagger-codegen

如何访问 Swagger Codegen 生成的 JAXRS 类上的请求标头

我有一个带有 Swagger API 的项目,其服务器代码是由 swagger-codegen-2.4.24 为语言 jaxrs 生成的。

生成的代码有一个后缀为“*ApiService”的抽象类,它定义了一系列方法,每个方法对应于API的Swagger规范上定义的每个操作。

每个方法都有一个 javax.ws.rs.core.SecurityContext 接口局部变量。

现在,在扩展“*ApiService”的自定义类上,它显然具有 javax.ws.rs.core.SecurityContext 类局部变量,我需要获取请求标头“X-Forwarded-For”的值。

如果我调试自定义类,我会看到 SecurityContext 接口是 org.glassfish.jersey.server.internal.process.SecurityContextInjectee 的实例,它具有我需要的标头。

由于 SecurityContextInjectee 是私有的,我无法使用它,因此如何获取该信息?

我意识到,如果 swagger-codegen 生成的类除了 SecurityContext 之外还添加了 javax.servlet.http.HttpServletRequest 类,则可以访问请求参数,但我没有看到任何允许这样做的 jaxrs 参数。

期待您的评论。

java rest swagger swagger-codegen

6
推荐指数
1
解决办法
937
查看次数

如何使用 springdoc 将多个 Open Api Spec 合并为一个

我有一个带有 Spring Cloud Gateway 的微服务架构,每个微服务都有自己的 Open Api Spec。我需要将它们全部合并到 1 个开放 Api 规范( yaml 或 json )中。我不是在谈论服务多个链接的单个 swagger UI。我确实需要合并规范,因为规范的使用者需要一个 json 文件。此文件由 Atlassian 的 Open Api Validator 使用。

swagger openapi swagger-codegen springdoc

6
推荐指数
0
解决办法
791
查看次数

有没有办法使用 swagger-codegen 使用 Jakarta 而不是 Javax 生成源代码

我需要使用带有 Jakarta 包的 swagger codegen gradle 插件生成 spring 控制器源代码,但我在配置中看不到这样做的选项

我尝试使用以下选项来生成招摇代码:

additionalProperties = [
                "errorOnUnknownEnum": true,
                "dateLibrary": "java8",
                "hideGenerationTimestamp": true,
                "modelPackage": "com.delphix.api.gw.model${version}",
                "apiPackage": "com.delphix.api.gw.api${version}",
                "interfaceOnly": true,
                "packageName": "api",
                "useTags": true,
                "useJakartaEe" : true,
                "useSpringBoot3" : true,
                "generateSupportingFiles" : false,
                "java11" : true,
        ]
Run Code Online (Sandbox Code Playgroud)

spring-boot swagger-codegen jakarta-migration

6
推荐指数
1
解决办法
5155
查看次数

Swagger Codegen,Maven插件:限制服务器生成

我想使用swagger-codegen maven插件为我的API生成JAX-RS服务器存根,但我想使用自己的服务实现类,而不是生成的服务实现类.有没有办法生成除了这个类以外的所有东西?对于我的API,该工具生成四个api类:ProfilesApi,ProfilesApiService,ProfilesApiServiceFactory和ProfilesApiServiceImpl.

我目前的maven配置:

                     <configuration>
                        <inputSpec>src/main/resources/Profile.json</inputSpec>
                         <language>jaxrs</language>
                        <configOptions>
                            <dateLibrary>java8</dateLibrary>
                        </configOptions>
                        <models>Profile,PageInformation,ProfileResult</models>
                        <modelPackage>com.myApp.profile-api-model</modelPackage>
                        <apiPackage>com.myApp.profile-api-webapp</apiPackage>
                        <library>jersey2</library>
                        <environmentVariables>
                            <!-- change default client library (here until plugin 2.1.5). Doesn't seem to work! -->
                            <library>jersey2</library>
                            <!-- generate all models -->
                            <models></models>
                            <!-- generate all APIs -->
                            <apis></apis>
                            <!-- generate just the supporting files that are Java source code (not project build files) -->
                            <supportingFiles>ApiException.java,ApiOriginFilter.java,ApiResponseMessage.java,JacksonJsonProvider.java,LocalDateProvider.java,LocalDateTimeProvider.java,NotFoundException.java,StringUtil.java,web.xml,ProfilesApi.java,ProfilesApiService.java,ProfilesApiServiceFactory.java</supportingFiles>
                        </environmentVariables>
                    </configuration>
Run Code Online (Sandbox Code Playgroud)

java jax-rs maven swagger swagger-codegen

5
推荐指数
2
解决办法
5527
查看次数

Swagger CodeGen Https SSL连接

我需要为java创建swagger codegen客户端,javascript指向https上的swagger yaml pusblished.

尝试下面的命令得到SSLHandshakeError.

"swagger-codegen generate -i https://localhost:443/api/swagger.yaml -l java -o java-api/."
Run Code Online (Sandbox Code Playgroud)

另外,当swagger codegen生成客户端时,它会为https swagger spec url提供SSL Mutual TLS代码吗?

请帮忙.

swagger swagger-2.0 swagger-codegen

5
推荐指数
1
解决办法
3378
查看次数

在python中使用swagger codegen客户端向api调用添加标头的细节尚不清楚

指出正确的文档,教程,示例或提供一个,显示如何将特定的身份验证令牌添加到Python中Swagger生成的API客户端中的特定标头?

这是我尝试过的:
使用正确的curl命令,我的API调用工作得很好:

curl -v -H 'X-CAG-Authorization: AG_CONSUMER_TOKEN access-key=31337-70k3n' \
     'https://api.company.net/api/v1/user/detail?user=1'

*   Trying 10.10.1.10...
* Connected to api.company.net (10.10.1.10) port 443 (#0)
* TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
* Server certificate: *.company.net
* Server certificate: COMODO RSA Organization Validation Secure Server CA
* Server certificate: COMODO RSA Certification Authority
> GET /api/v1/user/detail?user=1 HTTP/1.1
> Host: api.company.net
> User-Agent: curl/7.49.1
> Accept: */*
> X-CAG-Authorization: AG_CONSUMER_TOKEN access-key=31337-70k3n
> 
< HTTP/1.1 200 OK
< Server: openresty
< Date: Thu, 22 Dec 2016 …
Run Code Online (Sandbox Code Playgroud)

python swagger swagger-codegen

5
推荐指数
1
解决办法
3261
查看次数

Swagger / OpenAPI API规范的Reactjs客户端

背景

使用Swagger Editor,我为我的API创建了一个规范。我看到Swagger在其Swagger编辑器中还提供了“生成客户端”选项(可能使用Swagger Codegen)。

目的

我想生成一个客户端并在我的React应用程序(通过create-react-app创建)中使用它,并且最好享受一些静态类型输入功能(当前使用flow)。

目前

Swagger Editor中的所有选项似乎都不起作用:

  • javascript-提供了所需的香草节点模块npm install作为项目的依赖项。现在,不仅没有任何类/类型,而且还失败了: Uncaught Error: Cannot find module "ApiClient" at webpackMissingModule (index.js:17) at exports.ApiClient (index.js:17) at Object.<anonymous> (index.js:22) at __webpack_require__ (bootstrap 75f547b…:555) at fn (bootstrap 75f547b…:86) at new Index (index.js:87) at ReactCompositeComponent.js:295 at measureLifeCyclePerf (ReactCompositeComponent.js:75) at ReactCompositeComponentWrapper._constructComponentWithoutOwner (ReactCompositeComponent.js:294) at ReactCompositeComponentWrapper._constructComponent (ReactCompositeComponent.js:280)
  • typescript-* 选项与js不兼容,我不必知道如何/想要将TypeScript添加到我的项目中。
  • *-angular 选项当然是无关紧要的。

方法

  • 生成.ts文件并将其隐藏到flow。怎么样??
  • 手动将生成的.js文件添加到我的项目中。当前不起作用,因为生成的代码带有其自己的依赖项。
  • 将TypeScript添加到我的项目中(我应该替换掉flow吗?)。怎么样??

谢谢

swagger typescript reactjs flowtype swagger-codegen

5
推荐指数
1
解决办法
1505
查看次数

Swagger Codegen使用现有类

我如何才能获得迅速的代码生成器以使用现有类而不是创建新类?这可能吗?例如,我想使用org.springframework.data.domain.Page而不是大胆地创建另一个页面类。

swagger-codegen

5
推荐指数
3
解决办法
4819
查看次数

更新Swagger code-gen生成的代码

我在spring中使用swagger code-gen从swagger.yaml文件生成了代码.

现在我已经为我的API更新了swagger.yaml文件,并添加了更多的HTTP操作.

是否可以自动更新先前生成的现有代码而无需手动合并?

swagger-ui spring-boot swagger-codegen

5
推荐指数
1
解决办法
3556
查看次数

如何使用Swagger Codegen在String中定义枚举值

我正在使用SwaggerCodegen(2.3.1)生成我的API的客户端代码。我将枚举用作YAML定义文件的一部分,之后Swagger生成了Java文件。

random:
    enum:
    - A
    - B
    - C+
    - C-
    type: string
Run Code Online (Sandbox Code Playgroud)

此yml转换为

  public enum Random{
    A("A"),
   B("B"),
   C_("C+"),
   C_("C-"); // compile time error..

private String value;
....}
Run Code Online (Sandbox Code Playgroud)

有没有办法给我的枚举值命名,如下所示?

public enum Random{
A("A"),
B("B"),
CP("C+"),  
CM("C-"); 
}
Run Code Online (Sandbox Code Playgroud)

java spring swagger swagger-codegen

5
推荐指数
1
解决办法
1297
查看次数