Rom*_*aza 8 symfony fosrestbundle
我能够通过@QueryParam()注释获得GET参数,但它看起来只适用于Query String数据:/user?id=123.
/user/123相反,我更喜欢它.为此,我可能会使用@Get("/user/{id}")注释,但我没有看到它有其他元数据@QueryParam():
name="id", requirements="\d+", default="1", description="User id"
Run Code Online (Sandbox Code Playgroud)
如果我使用这两个注释,我会收到一个错误:
ParamFetcher parameter conflicts with a path parameter 'id' for route 'getone'
Run Code Online (Sandbox Code Playgroud)
我的冲突文件块:
/**
* Finds and displays a Users entity.
*
* @Rest\View
* @Rest\Get("/user/{id}")
* @Rest\QueryParam(name="id", requirements="\d+", default="1", description="User id")
* @ApiDoc(section="Partner Users")
* @param int $id
* @return array
*/
Run Code Online (Sandbox Code Playgroud)
PS我需要在path(/user/123)中有一个id ,而不是在查询中,我还需要使用@QueryParam()NelmioApiDocBundle读取它.我该如何解决这个问题?
Nic*_*ich 18
FOSRestBundle的@Get注释扩展了FOSRestBundle @Route,后者又扩展了SensioFrameworkExtraBundle @Route.
查看代码并查看文档章节@Route和@Method.
的requirements和defaults属性期望的阵列.
/**
* @Rest\View
* @Rest\Get("/user/{id}", requirements={"id" = "\d+"}, defaults={"id" = 1})
* @ApiDoc(
* description="Returns a User Object",
* parameters={
* {"name"="id", "dataType"="integer", "required"=true, "description"="User Id"}
* }
* )
*/
public function getAction($id)
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13861 次 |
| 最近记录: |