我正在使用Nelmio ApiDoc捆绑包来记录REST Api(由FOS REST捆绑包管理)。在内部,即一些ArticleController类的get操作定义如下:
/**
* Retrieves an Article resource
* @Rest\Get("/articles/{articleId}")
* @Rest\View(
* serializerGroups={
* "rest",
* },
* statusCode=Response::HTTP_OK
* )
* @Operation(
* tags={"Article"},
* summary="Get single Article",
* @SWG\Response(response="200", description="Returned when successful"),
* @SWG\Response(response="400",description="Returned when the data is missing or data is not correct"),
* @SWG\Response(response="500",description="Returned when server side error occurred")
* )
*/
public function getArticle(int $articleId): View
{
$article = $this->getObjectById(Article::class, $articleId);
if (!$article) {
throw new EntityNotFoundException('Article with id '.$articleId.' does not exist!');
}
return View::create($article, Response::HTTP_OK);
}
Api文档捆绑软件确定articleId是此操作接受的参数,并将其显示为必需的字符串参数。
但是问题是...那不是字符串,而是整数。如何精确定义此参数的类型?我也想添加此参数的说明?我该怎么办?
使用QueryParam,我可以定义一个新参数并显示它,但我不想使用新参数,而是以某种方式覆盖由bundle自动检测到的参数。
* @Rest\QueryParam(
* name="brand",
* requirements="[\d]+",
* description="Brand Id."
* )
所以像这样的东西行得通,但是它显示为附加参数,我不需要。