当前位置: 首页 > 面试题库 >

如何正确使用从摇摇欲坠的规范生成的服务器存根?

狄元魁
2023-03-14
问题内容

我正在使用Swagger 2.0和swagger-codegen(实际上是Maven的swagger-codegen-
plugin)以Java为目标语言来指定,记录和生成API。

已经设置了该项目以构建服务器存根(JAX-RS)和文档,并且Eclipse可以识别项目buildPath中生成的代码。

我不确定这里合适的工作流程是什么。:-/

我不认为我应该修改生成的类,否则,每当我更改swagger规范时,我的更改就会被覆盖,并且我希望随着开发的进行,我对API的更多了解也会改变。

那我该怎么办?从生成的类(哪些?)继承还是将它们包括在我自己的类中?


问题答案:

这里有两个解决方案的步骤。

  1. / * Controller.java或 / * Impl.java添加到.swagger-codegen-ignore文件。根据使用的语言,默认实现在 Controller.java或 Impl.java文件中提供。一旦默认实现从生成中排除,您就可以在自己的类中实现生成的接口。您自己的类中的代码将不会在mvn clean上刷新。

  2. .swagger-codegen-ignore文件本身是自动生成的文件,因此在执行mvn清理时,将刷新在步骤1中添加的内容。为了避免这种情况,请将您的的版本保留.swagger-codegen-ignore在resources文件夹中,然后将以下插件添加到pom中,以便在Mavenhtml" target="_blank">生命周期开始时复制该文件:

    <plugin>
    
    <groupId>org.apache.maven.plugins</groupId>
    
    <artifactId>maven-resources-plugin</artifactId>
    
    <executions>
    
        <execution>
    
            <id>copy-resources</id>
    
            <phase>initialize</phase>
    
            <goals>
    
                <goal>copy-resources</goal>
    
            </goals>
    
            <configuration>
    
                <outputDirectory>${project.build.directory}/generated/swagger</outputDirectory>
    
                <resources>
    
                    <resource>
    
                        <directory>${basedir}/src/main/resources</directory>
    
                        <includes>
    
                            <include>.swagger-codegen-ignore</include>
    
                        </includes>
    
                    </resource>
    
                </resources>
    
            </configuration>
    
        </execution>
    
    </executions>
    



 类似资料:
  • 问题内容: 试图使这个Json带有昂首阔步的定义: 我的swagger.json看起来像这样: 我在请求中得到了这个Json: 如何获得第一个Json语法槽Swagger参考? 问题答案: 您需要具有属性的包装对象的附加定义: 然后更改您的数组定义以将此包装器用作项目类型:

  • 我试图在spring boot应用程序中使用swagger注释从Java代码中获取swagger规范(yaml)。我对模型进行注释,然后运行springboot应用程序,然后从http://localhost:8080/v2/api-文档。 我的模型如下所示: 我想为此创建正确的swagger yaml斑点。当我访问自动提供yaml的swagger UI时,我期待下面的内容。 注意dateOfBi

  • 我试图在我的微服务项目中生成一个单独的招摇过市,在Api网关中将所有服务招摇过市聚合成一个单独的招摇过市。为了实现这一点,我将遵循下一个教程https://objectpartners.com/2017/09/28/aggregate-services-into-a-single-swagger 这里的问题是,当我尝试设置绝对URL时,我收到的输出是未能加载API定义。未定义的http://loc

  • 摇一摇。 参数 Object object 参数 类型 必填 默认值 说明 success Function 否 调用成功的回调函数 fail Function 否 调用失败的回调函数 complete Function 否 调用结束的回调函数(调用成功、失败都会执行)

  • Since 8.2 watchShake 摇一摇功能 每次调用API,在摇一摇手机后触发回调事件,然后需要再次调用这个API。 使用方法 AlipayJSBridge.call("watchShake",function(data){ alert(JSON.stringify(data)); }); 代码演示 摇一摇基本功能 <h1>请点击按钮注册摇一摇事件,然后摇动手机</h1> <p>这

  • 监听摇一摇 var watchId = Tida.shake.watch({ sensitivity: 20, // 振动幅度,加速度变化超过这个值后触发shake frequency: 150, // 采样间隔(毫秒),指每隔多长时间对加速度进行一次采样, 然后对比前后变化,判断是否触发shake callbackDelay: 3000 // 触发『摇一摇』后的等待时间(