Поддержка двух разных тел запросов в одной и той же конечной точке

Мне нужно поддерживать два типа тела запроса для одной и той же конечной точки и одного и того же метода (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. Но я хочу, чтобы пользователи точно знали, что нужно передать только один из них. Я хочу иметь совершенно другое тело запроса для обеих ситуаций.


person Akeshwar Jha    schedule 16.05.2017    source источник


Ответы (1)


Прямого пути не нашел. Вот обходной путь, который я сейчас использую:

Предположим, что конечная точка /endpoint. Я могу создать 2 конечные точки в swagger-ui, добавив #, за которым следует строка:

/endpoint#1

/endpoint#2

Затем я могу определить оба тела запроса отдельно для каждой из этих конечных точек. Команда curl в swagger скроет хэш, так что обе конечные точки в основном одинаковы.

person Akeshwar Jha    schedule 16.05.2017