axios 如何在使用openApi Generator创建REST客户端时考虑约束

gc0ot86w  于 2023-05-06  发布在  iOS
关注(0)|答案(1)|浏览(183)

我有一个Spring Boot REST服务器。我使用springdoc-openapi来生成我的openapi-description。根据上面的描述,我想使用openapi-generator生成一个typescript/axios客户端。它工作得很好,但我有一个问题:不考虑这些约束。
下面是openapi-description.yaml中指定的DTO示例

AuftraggeberDTO:
  required:
    - anschrift
    - anzahlNiederlassungen
    - kontaktpersonFuerZulassungsstelle
    - organisationsname
    - validUntil
  type: object
  properties:
    organisationsname:
      maxLength: 1024
      minLength: 0
      type: string
    anschrift:
      $ref: '#/components/schemas/AnschriftDTO'
    telefonnummer:
      maxLength: 1024
      minLength: 0
      type: string
    kontaktpersonFuerZulassungsstelle:
      $ref: '#/components/schemas/KontaktpersonDTO'
    validUntil:
      type: string
      format: date-time
    anzahlNiederlassungen:
      type: integer
      format: int32

现在生成的Typescript-DTO:

export interface AuftraggeberDTO {
  /**
   *
   * @type {string}
   * @memberof AuftraggeberDTO
   */
  'organisationsname': string;
  /**
   *
   * @type {AnschriftDTO}
   * @memberof AuftraggeberDTO
   */
  'anschrift': AnschriftDTO;
  /**
   *
   * @type {string}
   * @memberof AuftraggeberDTO
   */
  'telefonnummer'?: string;
  /**
   *
   * @type {KontaktpersonDTO}
   * @memberof AuftraggeberDTO
   */
  'kontaktpersonFuerZulassungsstelle': KontaktpersonDTO;
  /**
   *
   * @type {string}
   * @memberof AuftraggeberDTO
   */
  'validUntil': string;
  /**
   *
   * @type {number}
   * @memberof AuftraggeberDTO
   */
  'anzahlNiederlassungen': number;
}

你看,验证消失了。我该怎么解决呢?
作为附加信息:我使用openapi-generator-maven-plugin生成了客户端

<plugin>
            <groupId>org.openapitools</groupId>
            <artifactId>openapi-generator-maven-plugin</artifactId>
            <version>6.5.0</version>
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <inputSpec>http://localhost:8080/v3/api-docs.yaml</inputSpec>
                        <inputSpec>${project.basedir}/src/main/resources/api-description.yaml</inputSpec>
                        <generatorName>typescript-axios</generatorName>
                        <output>./../vue-client/generated-client/typescript-axios</output>
                        <apiPackage>com.example.api</apiPackage>
                        <modelPackage>com.example.model</modelPackage>
                    </configuration>
                </execution>
            </executions>
        </plugin>

任何帮助赞赏!

zzzyeukh

zzzyeukh1#

不幸的是,类型脚本生成器还不支持验证。(来源:searching OpenAPI Generator的代码)
有一个相关的功能请求here
因此,目前您可以手动将验证添加到生成的代码中,和/或在OpenAPI Generator项目中打开一个Pull Request。

相关问题