Dredd - API Blueprint Testing Tool. "Неопределенная" проблема
Я установил dredd - API Blueprint Testing Tool и пытаюсь протестировать наш API API на предмет его реализации.
В чертеже у меня есть только один ресурс, который правильно реализован на некотором хосте... но тест не пройден:(
тестовая команда: dredd apiary.apib http://somehost.de:8443/imp-endpoint
выход: Info: Beginning Dredd testing...
undefined
Я попытался также с большим количеством опций, чтобы получить больше информации, которая не определена, например, -l verbose и некоторые другие опции. Но я не получил больше информации о сбое:(
У кого-нибудь есть опыт с этим? Спасибо!!!:)
1 ответ
Ответил на Github, но я приведу основные моменты здесь для справки:
Я не смог воспроизвести вашу "неопределенную" проблему, но есть несколько проблем, которые, если их исправить, заставляют все работать.
На данный момент базовый URL не может содержать путь (см. # 43). Это решено в #45, но еще не было объединено. Таким образом, ваша команда должна быть "dredd apiary.apib http://somehost.de:8443/", а затем "/imp-endpoint" должен быть префиксом в URL.
Шаблон URI неверен в вашем файле apib. Вместо
/api/V0/Resources/CarSharing/Cars?{lat}&{lng}&{radius}
, так должно быть/imp-endpoint/api/V0/Resources/CarSharing/Cars{?lat,lng,radius}
, См. RFC6750 для справки.Концы строк должны быть в стиле Unix, а не в Windows (\n, не \n\r). Когда я впервые запустил предоставленный вами apib, я получил ошибку:
the use of carriage return(s) '\r' in source data isn't currently supported, please contact makers
(это фактически выполняется синтаксическим анализатором проекта, см. snowcrash)
Надеюсь, это поможет! Я получаю 401 при запуске теста, так что вам нужно будет предоставить информацию об аутентификации HTTP Basic (это можно сделать в разделе заголовка проекта или с помощью -u
флаг на дредд, как в -u username:password
)