2016-11-10 2 views
0

Ich versuche, eine Swagger-Spezifikation für eine HTTP-API zu schreiben, die als /relationships?contact_id=12345 abgefragt wird und ein JSON-Array von Beziehungsobjekten zurückgibt, das wie [{"code": "ABC", "org": "MyOrg"}, ...] aussieht. Ich habe die folgenden:Swagger 2.0: "unerwartete fehlende Eigenschaft für Namensantwort"

swagger: '2.0' 
paths: 
    /relationships: 
    get: 
     parameters: 
     - 
      name: contact_id 
      in: query 
      required: true 
      type: integer 
     responses: 
     200: 
      schema: 
      type: array 
      items: 
       - 
       type: object 
       properties: 
        code: 
        type: string 
        org: 
        type: string 

aber bei dem Versuch, es zu benutzen (mit java -jar swagger-codegen-cli.jar generate -i test.swagger -l python), erhalte ich einen unerwarteten Satz von Fehlern:

[main] ERROR io.swagger.codegen.DefaultCodegen - String to be sanitized is null. Default to ERROR_UNKNOWN 
[main] ERROR io.swagger.codegen.DefaultCodegen - unexpected missing property for name response 
[main] WARN io.swagger.codegen.DefaultCodegen - skipping invalid property { 
    "type" : "array" 
} 
[main] ERROR io.swagger.codegen.DefaultCodegen - unexpected missing property for name response 
Exception in thread "main" java.lang.RuntimeException: Could not process operation: 
    Tag: default 
    Operation: null 
    Resource: get /relationships 
    Definitions: {} 
    Exception: null 
    at io.swagger.codegen.DefaultGenerator.processOperation(DefaultGenerator.java:720) 
    at io.swagger.codegen.DefaultGenerator.processPaths(DefaultGenerator.java:612) 
    at io.swagger.codegen.DefaultGenerator.generate(DefaultGenerator.java:339) 
    at io.swagger.codegen.cmd.Generate.run(Generate.java:223) 
    at io.swagger.codegen.SwaggerCodegen.main(SwaggerCodegen.java:36) 
Caused by: java.lang.NullPointerException 
    at io.swagger.codegen.DefaultCodegen.fromResponse(DefaultCodegen.java:1646) 
    at io.swagger.codegen.DefaultCodegen.fromOperation(DefaultCodegen.java:1440) 
    at io.swagger.codegen.DefaultGenerator.processOperation(DefaultGenerator.java:668) 
    ... 4 more 

Was mache ich falsch hier? Ich weiß nicht, was "unerwartete fehlende Eigenschaft für Namensantwort" bedeutet.

Antwort

2

Dieses versuchen:

swagger: '2.0' 
info: 
    version: 'v0' 
    title: Relationships 
    description: My Relationships API 
paths: 
    /relationships: 
    get: 
     parameters: 
     - 
      name: contact_id 
      in: query 
      required: true 
      type: integer 
     responses: 
     200: 
      description: Ok 
      schema: 
      type: array 
      items: 
       - 
       type: object 
       properties: 
        code: 
        type: string 
        org: 
        type: string 

Der info Block oben erforderlich nach http://swagger.io/specification. Ich fügte auch ein description Feld zu Ihrer 200 Antwort hinzu. Leider habe ich festgestellt, dass die Swagger-Fehler nicht immer hilfreich sind. :-(

+0

Leider beeinflusst keine dieser Änderungen den Fehler (ich hatte ursprünglich einen Infoblock und Beschreibungen, und ich nahm sie heraus, um einen minimalen Testfall für den Fehler zu demonstrieren). – sil

Verwandte Themen