Swagger PHP和学说注释问题



我正在为我们构建的API实现Swagger-PHP。

这是一个简短的回顾:

语言:php5.3

框架:Fuelphp 1.5.3

环境:local(与nginx一起使用)

现在我有一个API方法定义为:

/**
 * @SWGApi(
 *   path="/site/list",
 *   description="Get sites list",
 *   @SWGOperation(...,
 *      @SWGParameter(...),
 *      @SWGResponseMessage(...),
 *      @SWGResponseMessage(...)
 *   )
 * )
 */
public function action_run()
{
    //doing stuff
}

我现在尝试以下内容(从应用程序中的其他地方)生成JSON:

$swagger = new SwaggerSwagger('my/root/dir');
$swagger->getResource('/site/list', array('output' => 'json'));

和这里的第一行(在我的招摇课上)给我带来了一个错误:

errorexception [用户警告]:[语义错误]类 @Annotation不会注释"软件包"。你确定这堂课吗 可以用作注释吗?如果是这样,那么您需要将@Annotation添加到 class doc评论"包"。如果确实没有注释, 然后,您需要将@ignoreannotation("软件包")添加到 class doc @swagger Annotations API的评论

添加@IgnoreAnnotation("package")实际上没有帮助。

我注意到,如果我从此处删除@package,则该错误消失了:

https://github.com/zircote/swagger-php/blob/master/library/library/swagger/annotations/api.php#l28

但这不是解决方案。

我猜这主要是与学说有关的,但我似乎无法弄清楚。

感谢有关此事的任何提示或想法。

因为FuelPHP有一个包装类(在fuel/core/package.php中),这不是@Annotation docparser生成此警告。

Swagger-PHP使用$ DOCPARSER-> setignoreNotimportedAnnotations(true)设置,这应该阻止此类警告。

我已经报告了这个问题并解决了问题,但可悲的是,补丁被拒绝
将问题(再次)报告为学说,越多的人抱怨它越来越快地修复了😉

作为解决方法,将您的DocParser.php替换为此版本

相关内容

  • 没有找到相关文章

最新更新