2017-02-03 3 views
0

У меня есть существующий API, который не совсем RESTful. Я пытался использовать Swagger, чтобы быстро собрать Mock Server, чтобы я мог тестировать приложение, не полагаясь на сервер. Когда я начал писать правила yaml, я понял, что для подмножества маршрутов используется одна и та же конечная точка, и сервер анализирует тело json, чтобы точно определить, что такое запрос. Есть ли способ моделировать такое поведение с помощью Swagger?Можно ли указать маршруты Swagger на основе параметра body

(Пожалуйста, не комментируйте архитектуры API, она уже существует и в спектаклях, и я не участвовал в разработке)

ответ

1

Не можно определить несколько конечных точек/поведения, которые разделяют один и тот же URL.

В swagger.yml предполагается, что у вас есть API RESTful. Swagger определит поведение и допустимую полезную нагрузку для каждого маршрута, и каждый маршрут должен иметь уникальный путь. Вы не можете представлять несколько маршрутов через один и тот же URL с помощью Swagger, если только вы не должны объединять их все и представлять их как общую конечную точку. Это потребует от вас описания поведения с использованием документации, и вы потеряете многие преимущества взрослости (приятный интерфейс и автоматическая проверка). Если у вас есть разные входные данные для каждого маршрута, все поля должны быть определены в одной и той же полезной нагрузке, и в документации будет описываться, какие поля необходимы для каждого сценария.

Если возможно, рассмотрите возможность определения нескольких конечных точек и затем проксируйте запросы на один и тот же базовый маршрут.