2016-11-10 108 views
0

我想寫一個HTTP API的swagger spec,它被查詢爲/relationships?contact_id=12345並返回一個看起來像[{"code": "ABC", "org": "MyOrg"}, ...]的關係對象的JSON數組。我有以下:Swagger 2.0:「意外缺失名稱響應屬性」

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 

但是當試圖使用它(與java -jar swagger-codegen-cli.jar generate -i test.swagger -l python),我得到一個意外的錯誤集:

[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 

什麼我錯在這裏做什麼?我不知道什麼「意外缺失名稱響應屬性」的意思。

回答

2

嘗試這種情況:

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 

在頂部的info塊是根據http://swagger.io/specification必需的。我還爲您的200響應添加了description字段。不幸的是,我發現Swagger錯誤並不總是有幫助的。 :-(

+0

不幸的是,這些變化都沒有影響到錯誤(我最初有一個信息塊和描述,爲了演示錯誤的最小測試用例,我把它們拿出來了)。 – sil