Я использую пакет Nelmio ApiDoc для документирования REST Api (управляется с помощью пакета FOS REST).Внутри, т. Е. Определено действие get класса ArticleController, например:
/**
* 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 doc определяет, что articleId - это параметр, который принимает это действие, и отображает его как обязательный строковый параметр.
Но проблема в том, что... это не строка, а целое число.Как я могу точно определить тип этого параметра?Я также хотел бы добавить описание этого параметра?Как я могу это сделать?
С помощью QueryParam я могу определить новый параметр, и он появляется, но я не хочу новый, но каким-то образом переопределяю тот, который автоматически обнаруживается пакетом.
* @Rest\QueryParam(
* name="brand",
* requirements="[\d]+",
* description="Brand Id."
* )
Так что-то вроде этого работает, но отображается как дополнительный параметр, и мне это не нужно.