我正在为我们构建的API实现Swagger-PHP。
这是一个简短的回顾:
语言:PHP5.3
框架:FuelPHP 1.5.3
环境:本地(与Nginx一起提供)
现在我有一个定义如下的API方法:
/**
* @SWG\Api(
* path="/site/list",
* description="Get sites list",
* @SWG\Operation(...,
* @SWG\Parameter(...),
* @SWG\ResponseMessage(...),
* @SWG\ResponseMessage(...)
* )
* )
*/
public function action_run()
{
//doing stuff
}
我现在尝试以下(从我的应用程序的其他地方)生成JSON:
$swagger = new Swagger\Swagger('my/root/dir');
$swagger->getResource('/site/list', array('output' => 'json'));
这里的第一行(当我的Swagger类实例化时)给我一个错误:
ErrorException [用户警告]:[语义错误]该类 “package”未使用@Annotation注释。你确定这堂课吗? 可以用作注释吗?如果是这样,那么你需要添加@Annotation “包”的类 doc注释。如果它确实没有注释, 那么你需要将@IgnoreAnnotation(“package”)添加到类 doc 课堂评论@Swagger \ Annotations \ Api。
添加@IgnoreAnnotation("package")
实际上没有帮助。
如果我从此处删除@package
,我发现错误消失了:
https://github.com/zircote/swagger-php/blob/master/library/Swagger/Annotations/Api.php#L28
但这不是解决方案。
我猜这主要与学说有关,但我似乎无法弄明白。
感谢有关此事的任何提示或想法。
答案 0 :(得分:1)
因为FuelPHP有一个Package类(在fuel / core / package.php中),而不是@Annotation,DocParser会生成此警告。
Swagger-PHP使用$ docParser-> setIgnoreNotImportedAnnotations(true)设置,这应该会阻止这些警告。
我已经报告了问题并解决了问题but sadly the patch was rejected 再次向学说报告问题,人们抱怨的越多,修复得越快
作为解决方法,将DocParser.php替换为this version