Symfony API平台-创建没有实体的新资源

Symfony API平台-创建没有实体的新资源,symfony,api-platform.com,Symfony,Api Platform.com,嗨,我在用。基于symfony的API框架 我已经创建了实体,并使用@ApiResource注释公开了它们,因此我可以在CRUD的API文档中看到它们 我想在swagger api文档中添加一个自定义控制器。例如,我的身份验证控制器 我该怎么做 我的令牌控制器: class TokenController extends Controller { /** * @Route(path="/auth", name="auth") * * @param Reque

嗨,我在用。基于symfony的API框架

我已经创建了实体,并使用
@ApiResource
注释公开了它们,因此我可以在CRUD的API文档中看到它们

我想在swagger api文档中添加一个自定义控制器。例如,我的身份验证控制器

我该怎么做

我的令牌控制器:

class TokenController extends Controller
{
    /**
     * @Route(path="/auth", name="auth")
     *
     * @param Request $request
     * @return JsonResponse
     * @throws \Lexik\Bundle\JWTAuthenticationBundle\Exception\JWTEncodeFailureException
     */
    public function tokenAction(Request $request)
    {
        $em = $this->getDoctrine()->getManager();
        $user = $em->getRepository(User::class)->findOneBy(array(
            'username' => $request->getUser(),
        ));

        if(!$user){
            throw $this->createNotFoundException('No user');
        }

        $isValid = $this->get('security.password_encoder')->isPasswordValid($user, $request->getPassword());

        if(!$isValid){
            throw new BadCredentialsException();
        }

        $token = $this->get('lexik_jwt_authentication.encoder')->encode(array(
            'id' => $user->getId(),
            'username' => $user->getUsername(),
            'roles' => $user->getRoles(),
        ));

        return new JsonResponse(array(
            'token' => $token
        ));
    }
}

您必须创建一个招摇过市装饰器,并为端点添加自定义招摇过市配置