Swagger将下划线转换为camelcase

时间:2016-03-07 18:19:37

标签: swagger

所以,我在使用Swagger(Core 1.5.7)的XML对象定义时遇到了麻烦。这是我的XML代码:

<result status="ok">
    <another>
        <cards/>
        <customer my_super_id="2349027834"/>
        <someothers>
            <someother name="who-is-this" />
        </someothers>
    </another>
</result>

这是我的yml代码:

result:
   type: object
   description: Some random description
   properties:
     status:
       type: string
       xml:
         attribute: true
     another:
       type: object
       properties:
         customer:
           type: object
           properties:
             superId:
               type: string
               xml:
                 name: my_super_id
                 attribute: true

我可以毫无问题地获得status,但my_super_idnull因为Swagger使用CamelCase中的参数生成模型类,即mySuperId而不是my_super_id public ResultAnotherCustomer(@JsonProperty("mySuperId") final String mySuperId)。 在我生成的模型类中,我有: @brand-primary

有什么方法可以解决这个问题吗?

3 个答案:

答案 0 :(得分:1)

愚蠢的原因,似乎我没有使用swagger-codegen的最新版本 ,所以将其更新到最新版本(2.1.5)解决了问题。

答案 1 :(得分:0)

我使用Swagger编码器生成器的经验是,它让我得到了我想要的80%,然后我必须自己做其余的事。如果你认为这是一个bug,你可以在这里记录: https://github.com/swagger-api/swagger-codegen/issues

Java通常倾向于使用CamelCase而不是snake_case,因此我猜测它是故意的。

答案 2 :(得分:0)

生成摇摇欲坠的客户端时我也遇到了这个问题

将模型从蛇案“ aa_ba_ca”重命名为骆驼案“ AaBaCa”

出现错误,因为调用api_instance.method(swagger_client.model(parameters))时找不到模型

错误: AttributeError swagger模块没有属性