2017-06-16 65 views
1

也許我只是缺少它,我想隱藏控制器的休息方法,沒有實現他們類似的選項,刪除,頭招搖的UI你怎麼隱藏其他方法無法實現的

是否有標註爲這個?文檔 使用https://github.com/nelmio/NelmioApiDocBundle V3

目前,當我查看/ API/DOC任何控制器我添加列表中的所有其他方法,即使我只有實現了一個GET方法,我找不到它。

enter image description here

<?php 

namespace ApiBundle\Controller; 

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security; 
use Symfony\Component\Routing\Annotation\Route; 
use Symfony\Component\HttpFoundation\JsonResponse; 

use Swagger\Annotations as SWG; 


class UserController extends Controller 
{ 


    /** 
    * @Security("is_granted('IS_AUTHENTICATED_FULLY')") 
    * @Route("/api/users", name="get_users", methods={"GET"}) 
    * 
    * @SWG\Response(
    *  response=200, 
    *  description="Returns all users" 
    *) 
    * @SWG\Tag(name="users") 
    * 
    * 
    * @return \Symfony\Component\HttpFoundation\JsonResponse 
    */ 
    public function getUsersAction() 
    { 

     $repo = $this->getDoctrine() 
      ->getRepository('AccountBundle:User'); 
     $users = $repo->createQueryBuilder('q') 
      ->getQuery() 
      ->getArrayResult(); 

     return new JsonResponse($users); 

    } 

} 
+0

嗯,你設置了接口的原因是遵循和實施所有的方法。如果你的類正在實現一個接口並且沒有實現所有的方法,你只是做錯了。創建一個簡單的界面,不用那些未使用的簽名,並讓你的類實現它。 –

+0

這個班級沒有實現一個接口 – user1930591

+0

你可以發佈你所有的班級代碼嗎? –

回答

0

就想通了,如果你不指定在@Route(控制器的方法)註釋,然後它會顯示所有的人,但如果你添加方法= {}到路徑註解則只會列出定義的方法

* @Route("/api/users", name="get_users", methods={"GET"}) 

enter image description here

0

指定要在@Value@method型@RequestMapping

@RequestMapping(value="/instances/all",method=RequestMethod.GET) 
@JsonFormat 
public String showInstances(){ 
    return "instances"; 
}