Повторное использование схемы/модели apiblueprint для повторных запросов с другими параметрами

То, что я пытаюсь сделать с помощью API-плана (с dredd в качестве тестраннера), вызывает бэкэнд дважды подряд с почти одним и тем же (сложным) запросом. Что я хотел бы сделать, так это определить вход для определенной конечной точки и иметь там некоторые заполнители, возможно, со значениями по умолчанию, если параметры не указаны.

Например: запрос 1, набор данных x, параметр x = 0 => результат = «нечего делать»

Например: запрос 2, набор данных x, параметр x = 100 => результат = «много дел»

Предоставляет ли apiblueprint эту функциональность?

Искал его, и схемы и модели, кажется, приближаются, но я не могу найти какой-либо пример реализации, который делает именно это.

С уважением, Тим


person Tim Meeuwissen    schedule 04.01.2016    source источник


Ответы (1)


Если я правильно понимаю ваш вопрос, вы можете использовать комбинацию следующих функций:

Опишите два ваших варианта использования как две отдельные транзакции в вашем API Blueprint. Затем вы сможете проверить их с Дреддом. Чтобы ваш API Blueprint был DRY, используйте возможности раздела атрибутов и наследования. или миксины. Затем, если вам все еще не хватает жесткого контроля над тем, как Дредд тестирует план, вы можете изменить то, что отправляется, используя крючки. Хуки Dredd позволяют программно улучшить поведение Dredd и могут быть написаны на нескольких языках программирования.

person Honza Javorek    schedule 04.01.2016
comment
Привет, Хонза, хотя твой ответ на самом деле не решил мою первоначальную проблему, он был очень, очень полезен! Спасибо! К настоящему времени у меня есть одно определение структуры данных и несколько запросов, но они по-прежнему являются полными запросами, а не изменениями предыдущего определения. Может быть, это также более читабельно таким образом. Спасибо! - person Tim Meeuwissen; 11.01.2016
comment
@Tim Есть ли что-нибудь подобное для чванства? Я также использую dredd и хочу иметь возможность вызывать одну конечную точку с разными параметрами: 1) /get_token?auth_code=foo 2) /get_token?refresh_token=bar 3) /get_token?user=foo&pass=bar - person Eldar Rakhimberdin; 21.11.2017