如何使用swagger codegen生成具有自定义日期时间注释的模型

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

我们需要使用以下注释来注释日期时间字段:

@Type("DateTime<'Y-m-d\TH:i:sP'>")

有人可以建议如何使用swagger代码来实现这一点。代码库是PHP。当前字段定义如下:

created:
        type: "string"
        format: "date-time"
        description: "Date client details first appeared in the system."         
        default: null

所需输出:

/**
     * Date client details first appeared in the system.
     *
     * @var \DateTime|null
     * @SerializedName("createdDate")
     * @Assert\DateTime()
     * @Type("DateTime<'Y-m-d\TH:i:sP'>")
     */
    protected $createdDate;

swagger codegen正在制作什么:

 /**
     * Date client details first appeared in the system.
     *
     * @var \DateTime|null
     * @SerializedName("createdDate")
     * @Assert\DateTime()
     * @Type("DateTime")
     */
    protected $createdDate;
php annotations swagger swagger-codegen
1个回答
0
投票

Swagger Codegen使用Mustache模板生成代码。例如,您的示例中的PHP注释在此模板中定义:

https://github.com/swagger-api/swagger-codegen/blob/master/modules/swagger-codegen/src/main/resources/php-symfony/model_variables.mustache

您可以修改这些模板以自定义输出。

将上面的模板下载到您的计算机,并根据需要更改日期时间注释。然后使用-t参数运行codegen以指定自定义模板的路径:

java -jar swagger-codegen-cli-2.4.4.jar generate
  -i http://petstore.swagger.io/v2/swagger.json
  -l php-symfony
  -o petstore_php_server
  -t path/to/MyTemplates    <------

将使用-t文件夹中找到的任何自定义模板而不是相应的标准模板。在-t文件夹中找不到的模板将默认为标准模板。

© www.soinside.com 2019 - 2024. All rights reserved.