在同一端点支持两个不同的请求主体

时间:2017-05-16 08:33:56

标签: documentation swagger swagger-2.0 swagger-editor

我需要为同一个端点和相同的方法(POST)支持两种请求体。在Swagger有可能吗?

这很重要,因为两个请求体都是有效的,用户可以发送其中任何一个。更具体地说,

RequestBody 1:

{
    param1: value1
    param2: value2
    param3: {
        param3Key1:  x1
        param3Key2:  x2
        ...
    }
}

RequestBody 2:

{
    param1: value1
    param2: value2
    param4: {
        differentKey1:  y1
        differentKey2:  y2
        ...
    }
}

有没有办法在Swagger中记录这种情况?

这样做的一种方法是在文档中保留param3和param4。但是,我希望用户明确知道只需要传递其中一个。我希望在两种情况下都有一个完全不同的请求体。

1 个答案:

答案 0 :(得分:1)

找不到直道。这是我现在关注的解决方法:

假设端点为/endpoint。我可以通过附加#后跟一个字符串在swagger-ui中创建2个端点:

/endpoint#1

/endpoint#2

然后,我可以在每个端点下单独定义我的请求主体。 swagger中的curl命令将隐藏哈希值 - 因此,两个端点基本相同。