swagger-ui你如何隐藏未实现的休息方法

时间:2017-06-16 19:00:27

标签: symfony swagger-ui

也许我只是错过了它,我想隐藏一些其他没有实现它们的控制器的休息方法,比如options,delete,head

这是否有注释?我在文档中找不到它 使用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);

    }

}

2 个答案:

答案 0 :(得分:1)

如果你没有在@Route()注释中指定控制器中的方法,那么它会显示出来然后它会显示所有这些方法但是如果你将 methods = {} 添加到Route注释中那么它只会列出定义的方法

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

enter image description here

答案 1 :(得分:-1)

@RequestMapping

中指定 @Value @method 类型
@RequestMapping(value="/instances/all",method=RequestMethod.GET)
@JsonFormat
public String showInstances(){
   return "instances";  
}