1

我安装了dredd - API Blueprint Testing Tool并尝试针对实现测试我们的 APIary API。

在蓝图中,我只有一个在 somehost 上正确实现的资源......但测试失败:(

测试命令: dredd apiary.apib http://somehost.de:8443/imp-endpoint

输出: Info: Beginning Dredd testing... undefined

我还尝试使用更多选项来获取更多未定义的信息。例如-l verbose和其他一些选项。但我没有得到更多关于失败的信息:(

有没有人有这方面的经验?谢谢!!!:)

4

1 回答 1

4

在 Github 上回答,但我将在此处复制要点以供参考:

我无法重现您的“未定义”问题,但是有一些问题在更正后可以使一切正常。

  1. 目前,基本 url 中不能有路径(参见#43)。这已在#45中解决,但尚未合并。因此,您的命令应该是“dredd apiary.apib http://somehost.de:8443/”,然后“/imp-endpoint”应该是网址上的前缀。

  2. 您的 apib 文件中的 URI 模板不正确。而不是/api/V0/Resources/CarSharing/Cars?{lat}&{lng}&{radius},它应该是/imp-endpoint/api/V0/Resources/CarSharing/Cars{?lat,lng,radius}。请参阅RFC6750以供参考。

  3. 行尾应该是 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 基本身份验证信息(这可以在蓝图的标题部分完成,也可以-u在 dredd 上使用标志,如-u username:password

于 2014-02-27T15:07:40.773 回答