我正在使用 Symfony 框架,并打算将自动文档引擎添加到我项目的 RESTful api 中。
经过一番搜索,我找到了 apidoc 引擎(http://apidocjs.com/)。它的工作原理非常简单:您必须为 RESTful api 的每个控制器添加一些注释,然后生成文档。
注解的例子是:
/**
* @Route("/api/dictionary_list/{userId}/{sessionKey}", name="api/dictionary_list")
* @api {get} /api/dictionary_list/{userId}/{sessionKey} 01. Values list (ids) for all system dictionaries
* @apiName Dictionary list
* @apiGroup Dictionary
*
* @apiParam {Integer} userId User's ID received in authorization request
* @apiParam {String} sessionKey Session key received in authorization request
*
* @apiSuccess {Integer} parcelStatuses The name of current dictionary
* @apiSuccess {String} itemId Item id which used in requests
* @apiSuccess {String} itemName Item name
*/
public function dictionaryListAction($userId=null, $sessionKey=null)
{
...
}
可以看到,apidoc 的注解和 Symfony 中路由的注解是一样的。
顺便说一句,在生产环境中它工作正常,但在开发环境中我得到异常
[Semantical Error] The annotation "@apiName" in method AppBundle\Controller\Api\apiDictionaryController::dictionaryListAction() was never imported.
有什么办法可以解决这个问题并向 Symfony 说必须忽略 apidoc 的注释?