我正在为我们构建的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替换为此版本