在Swagger-UI中覆盖动词级别模型/模型模式

时间:2014-09-11 17:33:56

标签: json api-design swagger swagger-ui

我正在使用swagger-ui来尝试标准化API文档。我意识到对于使用body参数并因此需要显示模型和模型模式的动词(GET,PUT,POST等),模式正在资源级别定义(宠物商店中的/ pet或/ store)例)。但是,在我们的API中,所需的身体参数将从动词变为动词,并且为每个准确地反映这一点的模型将会很好。

http://petstore.swagger.wordnik.com/api/api-docs/pet中模型定义的当前版本,其中模型定义如下:

swagger-ui-model-def http://i58.tinypic.com/15phegg.png

有没有办法在动词级别覆盖默认的资源级模型?

1 个答案:

答案 0 :(得分:1)

在swagger 2.0规范中,每个资源都有HTTP方法的子部分(get,post,delete等)。其中每个都有一个参数标签,它映射到下面表格的JSON对象列表。为了使该主体使用单独的模式,可以使用模式标记和$ref子标记覆盖它,然后引用您在底部的定义子部分中单独提供的定义。

{
    name: "body",
    in: "body",
    description: "set the properties of a pet",
    schema: {
        $ref: "#/definitions/PetPut"
    },
    required: true
}