2016-06-20 6 views
0

Auf java -jar swagger-codegen-cli.jar generate -i ../tech-bucket/membership-card/apis/mini.swagger -l nodejs-server gegen die Prahlerei spec unten ausgeführt wird, sehe ich zwei Fehler/Warnungen:Prahlerei-CODEGEN ungültig Objekttyp Überspringen: Array

[main] ERROR io.swagger.codegen.DefaultCodegen - unexpected missing property for name actual_things 
[main] WARN io.swagger.codegen.DefaultCodegen - skipping invalid property { 
    "type" : "array" 
} 
[main] ERROR io.swagger.codegen.DefaultCodegen - unexpected missing property for name actual_things 
[main] WARN io.swagger.codegen.DefaultCodegen - skipping invalid property { 
    "type" : "array" 
} 

Ich verstehe nicht, was die Angabe type: array ungültig ist. Wie anders kann ich sagen, dass die API ein Array von Objekten zurückgibt? Das heißt, die API etwas zurückgibt, die wie folgt aussieht:

{ 
    formatted_input: "Here is the formatted input", 
    actual_things: [ 
     {id: "10", thing_value: "the value for number 10"}, 
     {id: "12", thing_value: "the value for number 12"} 
    ] 
} 

Die Prahlerei spec fehlerhaft ist:

swagger: '2.0' 

info: 
    version: "1" 
    title: title here 
    description: description here 

paths: 
    /endpoint: 
    get: 
     description: an endpoint 
     parameters: 
     - 
      name: someparam 
      in: query 
      description: param desc here 
      required: true 
      type: string 
     responses: 
     200: 
      description: List of things 
      schema: 
      title: thing_list 
      type: object 
      properties: 
       formatted_input: 
       type: string 
       description: The passed input 
       actual_things: 
       type: array 
       items: 
        - 
        type: object 
        properties: 
         thing_value: 
         type: string 
         description: The thing 
         id: 
         type: string 
         description: an ID 

Antwort

1

Das Problem ist, dass items ist ein magisches Schlüsselwort, das definiert, dass alle Produkte in dieser Sammlung Nutzung das folgende Schema. Wir müssen es nicht wirklich zu einem YAML-Array-Element machen. So arbeiten Prahlerei spec wie folgt aussieht:

swagger: '2.0' 

info: 
    version: "1" 
    title: title here 
    description: description here 

paths: 
    /endpoint: 
    get: 
     description: an endpoint 
     parameters: 
     - 
      name: someparam 
      in: query 
      description: param desc here 
      required: true 
      type: string 
     responses: 
     200: 
      description: List of things 
      schema: 
      title: thing_list 
      type: object 
      properties: 
       formatted_input: 
       type: string 
       description: The passed input 
       actual_things: 
       type: array 
       items: 
        type: object 
        properties: 
        thing_value: 
         type: string 
         description: The thing 
        id: 
         type: string 
         description: an ID 
+0

diff für diejenigen, die zwischen dem gebrochenen und Arbeits Code Spek den Unterschied eine harte Zeit haben: https://www.diffchecker.com/rHgYlLyk – Shawn