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

Supporting two different request bodies at the same endpoint

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

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

请求主体 1:

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

请求主体 2:

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

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

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

找不到直路。这是我现在正在遵循的解决方法:

假设终点是/endpoint。我可以在 swagger-ui 中创建 2 个端点,方法是在 # 后跟一个字符串:

/endpoint#1

/endpoint#2

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