首页 文章

将swagger文件上传到API Manager v2.5.0时出错

提问于
浏览
0

我正在测试wso2 API Manager(2.5.0)的当前版本,我在2.2.0版本中已导入的当前swagger文件存在问题 .

错误消息是:“为资源'/ tasks / '提供的HTTP方法'参数'无效”:

at org.wso2.carbon.apimgt.impl.utils.APIUtil.handleException(APIUtil.java:1411)
        at org.wso2.carbon.apimgt.impl.definitions.APIDefinitionFromOpenAPISpec.getURITemplates(APIDefinitionFromOpenAPISpec.java:124)
        at org.wso2.carbon.apimgt.hostobjects.APIProviderHostObject.jsFunction_updateAPIDesign(APIProviderHostObject.java:969)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:126)
        ... 69 more

这是来自studio.restlet.com的API示例:

{
  "swagger" : "2.0",
  "info" : {
    "description" : "An API for managing a list of tasks that need to be done. \n\nDon't forget to take it for a spin by clicking on the **Try in Client** button next to each operation! All read operations are public and don't require authentication.\n",
    "version" : "1.1.0",
    "title" : "Tasks API",
    "termsOfService" : "",
    "contact" : { }
  },
  "host" : "tasksapi.restlet.net",
  "basePath" : "/v1",
  "schemes" : [ "https" ],
  "consumes" : [ "application/json" ],
  "produces" : [ "application/json" ],
  "paths" : {
    "/tasks/" : {
      "get" : {
        "summary" : "Load the list of Tasks",
        "parameters" : [ {
          "name" : "$size",
          "in" : "query",
          "required" : false,
          "type" : "integer",
          "description" : "Size of the page to retrieve.",
          "x-example" : 10
        }, {
          "name" : "$page",
          "in" : "query",
          "required" : false,
          "type" : "integer",
          "description" : "Number of the page to retrieve.",
          "x-example" : 1
        }, {
          "name" : "$sort",
          "in" : "query",
          "required" : false,
          "type" : "string",
          "description" : "Order in which to retrieve the results. Multiple sort criteria can be passed. Example: sort=age ASC,height DESC",
          "x-example" : "createdAt DESC"
        }, {
          "name" : "id",
          "in" : "query",
          "required" : false,
          "type" : "string",
          "description" : "Allows to filter the collection of results by the value of field `id`",
          "x-example" : "47ee3550-b619-11e6-8408-0bdb025a7cfa"
        }, {
          "name" : "name",
          "in" : "query",
          "required" : false,
          "type" : "string",
          "description" : "Allows to filter the collection of results by the value of field `name`",
          "x-example" : "Learn about hypermedia APIs"
        }, {
          "name" : "createdAt",
          "in" : "query",
          "required" : false,
          "type" : "string",
          "description" : "Allows to filter the collection of results by the value of field `createdAt`",
          "x-example" : "2016.07.03"
        }, {
          "name" : "completed",
          "in" : "query",
          "required" : false,
          "type" : "boolean",
          "description" : "Allows to filter the collection of results by the value of field `completed`",
          "x-example" : true
        } ],
        "responses" : {
          "200" : {
            "description" : "Status 200",
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/Task"
              }
            },
            "examples" : {
              "application/json" : "[{\n  \"id\": \"47ee3550-b619-11e6-8408-0bdb025a7cfa\",\n  \"name\": \"Feed the fish\",\n  \"completed\": false,\n  \"createdAt\": \"2016.07.03\"\n}]"
            },
            "headers" : {
              "X-Page-Count" : {
                "type" : "integer",
                "x-example" : 1
              },
              "X-Page-Number" : {
                "type" : "integer",
                "x-example" : 1
              },
              "X-Page-Size" : {
                "type" : "integer",
                "x-example" : 25
              },
              "X-Total-Count" : {
                "type" : "integer",
                "x-example" : 2
              }
            }
          },
          "400" : {
            "description" : "Status 400",
            "schema" : {
              "$ref" : "#/definitions/Error"
            }
          }
        }
      },
      "post" : {
        "summary" : "Create a new Task",
        "consumes" : [ ],
        "parameters" : [ {
          "name" : "body",
          "in" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/Task"
          },
          "x-examples" : {
            "application/json" : "{\n  \"name\": \"Feed the fish\",\n  \"completed\": false,\n  \"createdAt\": \"2016.07.03\"\n}"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Status 200",
            "schema" : {
              "$ref" : "#/definitions/Task"
            },
            "examples" : {
              "application/json" : "{\n  \"id\": \"47ee3550-b619-11e6-8408-0bdb025a7cfa\",\n  \"name\": \"Feed the fish\",\n  \"completed\": false,\n  \"createdAt\": \"2016.07.03\"\n}"
            }
          }
        },
        "security" : [ {
          "HTTP_BASIC" : [ ]
        } ]
      }
    },
    "/tasks/{taskid}" : {
      "get" : {
        "summary" : "Load a specific Task",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "Status 200",
            "schema" : {
              "$ref" : "#/definitions/Task"
            },
            "examples" : {
              "application/json" : "{\n  \"id\": \"47ee3550-b619-11e6-8408-0bdb025a7cfa\",\n  \"name\": \"Feed the fish\",\n  \"completed\": false,\n  \"createdAt\": \"2016.07.03\"\n}"
            }
          },
          "400" : {
            "description" : "Status 400",
            "schema" : {
              "$ref" : "#/definitions/Error"
            }
          }
        }
      },
      "put" : {
        "summary" : "Update a Task",
        "consumes" : [ ],
        "parameters" : [ {
          "name" : "body",
          "in" : "body",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/Task"
          },
          "x-examples" : {
            "application/json" : "{\n  \"name\": \"Feed the fish\",\n  \"completed\": false,\n  \"createdAt\": \"2016.07.03\"\n}"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Status 200",
            "schema" : {
              "$ref" : "#/definitions/Task"
            },
            "examples" : {
              "application/json" : "{\n  \"id\": \"47ee3550-b619-11e6-8408-0bdb025a7cfa\",\n  \"name\": \"Feed the fish\",\n  \"completed\": false,\n  \"createdAt\": \"2016.07.03\"\n}"
            }
          }
        },
        "security" : [ {
          "HTTP_BASIC" : [ ]
        } ]
      },
      "delete" : {
        "summary" : "Delete a Task",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "Status 200"
          }
        },
        "security" : [ {
          "HTTP_BASIC" : [ ]
        } ]
      },
      "parameters" : [ {
        "name" : "taskid",
        "in" : "path",
        "required" : true,
        "type" : "string",
        "description" : "Identifier of the Task",
        "x-example" : "47ee3550-b619-11e6-8408-0bdb025a7cfa"
      } ]
    }
  },
  "securityDefinitions" : {
    "HTTP_BASIC" : {
      "description" : "All GET methods are public, meaning that *you can read all the data*. Write operations require authentication and therefore are forbidden to the general public.",
      "type" : "basic"
    }
  },
  "definitions" : {
    "Task" : {
      "type" : "object",
      "required" : [ "completed", "id", "name" ],
      "properties" : {
        "id" : {
          "type" : "string",
          "description" : "Auto-generated primary key field",
          "example" : "3fa2eb40-b61c-11e6-9de0-fdbe71bceebb"
        },
        "name" : {
          "type" : "string",
          "example" : "Figure out how to colonize Mars"
        },
        "completed" : {
          "type" : "boolean"
        },
        "createdAt" : {
          "type" : "string",
          "example" : "2016.10.06"
        }
      },
      "description" : "An object that represents a Task.",
      "example" : "{\n  \"id\": \"47ee3550-b619-11e6-8408-0bdb025a7cfa\",\n  \"name\": \"Feed the fish\",\n  \"completed\": false,\n  \"createdAt\": \"2016.07.03\"\n}"
    },
    "Error" : {
      "type" : "object",
      "required" : [ "code" ],
      "properties" : {
        "code" : {
          "type" : "integer",
          "minimum" : 400,
          "maximum" : 599
        },
        "description" : {
          "type" : "string",
          "example" : "Bad query parameter [$size]: Invalid integer value [abc]"
        },
        "reasonPhrase" : {
          "type" : "string",
          "example" : "Bad Request"
        }
      },
      "description" : "This general error structure is used throughout this API.",
      "example" : "{\n  \"code\": 400,\n  \"description\": \"Bad query parameter [$size]: Invalid integer value [abc]\",\n  \"reasonPhrase\": \"Bad Request\"\n}"
    }
  }
}

1 回答

相关问题