2017-06-02 2 views
0

Generieren von Servercode für this minimal example mit spring oder jaxrs-spec schafft 2 Modellklassen: Pet.java und InlineResposne200.java. Bis auf den Klassennamen sind sie identisch.Swagger Erzeugen Modellklassen dupliziert

Der Controller, der nie irgendwo verwendet wird, ein List<InlineResponse200> statt List<Pet> und die Klasse Pet tatsächlich /pets Renditen reagiert, obwohl die yaml Definition $ref: "#/definitions/Pet" verwendet. Warum passiert dies?

--- 
    swagger: "2.0" 
    info: 
    version: "1.0.0" 
    title: "Swagger Petstore" 
    description: "A sample API that uses a petstore as an example to demonstrate features in the swagger-2.0 specification" 
    termsOfService: "http://swagger.io/terms/" 
    contact: 
     name: "Swagger API Team" 
    license: 
     name: "MIT" 
    host: "petstore.swagger.io" 
    basePath: "/api" 
    schemes: 
    - "http" 
    consumes: 
    - "application/json" 
    produces: 
    - "application/json" 
    paths: 
    /pets: 
     get: 
     description: "Returns all pets from the system that the user has access to" 
     produces: 
      - "application/json" 
     responses: 
      "200": 
      description: "A list of pets." 
      schema: 
       type: "array" 
       items: 
       $ref: "#/definitions/Pet" 
    definitions: 
    Pet: 
     type: "object" 
     required: 
     - "id" 
     - "name" 
     properties: 
     id: 
      type: "integer" 
      format: "int64" 
     name: 
      type: "string" 
     tag: 
      type: "string" 

Antwort

1

Ich versuchte dies mit swagger-codegen v2.2.2 replizieren sowohl spring und jaxrs-spec, aber ich war die InlineResponse200.java zu bekommen nicht in der Lage.

Allerdings, nachdem ich etwas mehr graben, habe ich festgestellt, dass dieses Problem vor kurzem reported als Bug war. Es wurde noch nicht behoben, aber die InlineResponse200.java ist nicht dafür da.

Diese Datei wird bei Verwendung von Swagger Editor v3 fälschlicherweise generiert. Ich schätze, so haben Sie Ihre Datei generiert?

Während Swagger Editor v2 dieses Problem nicht hat, ist mein Vorschlag für die Zeit, um Sie die neueste stabile Version von swagger-codegen zu installieren und zu verwenden wären, um Ihren Code aus Ihrer Swagger.yaml-Datei zu erzeugen.

Hoffe, das hilft.

+0

Generierung von meiner Maschine mit der v2.2.2 funktionierte gut, danke! Ich benutzte den einen bei 'http: // editor.swagger.io' – cahen