2016-11-10 103 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