0
こんにちは私はAPI Platformを使用しています。 symfonyに基づくAPIフレームワーク。APIプラットフォーム - エンティティなしで新しいRessourceを作成する
私はエンティティを作成し、@ApiResource
アノテーションで公開しています。そのため、CRUDのAPIドキュメントに表示されています。
私はswagger api docにカスタムコントローラを追加したいと思います。たとえば、私の認証コントローラ。
どうすればいいですか?
マイTokenController:
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
));
}
}