Я поставил здесь решение для тех, кто хочет сделать то же самое
В каждом контроллере ApiBundle я помещаю эту аннотацию, чтобы убедиться, что каждое имя маршрута имеет одинаковый префикс 'api_'
/**
* Class SomeController.
*
* @Route("/some", name="api_")
*/
class SomeController extends Controller
в слушателе события запроса, я поставил эту проверку на событие KernelEvents :: REQUEST
$request = $event->getRequest();
if (!$event->isMasterRequest()) {
return;
}
if ('api_' === substr($request->get('_route'), 0, 4) && !$request->isXmlHttpRequest()) {
throw new MethodNotAllowedException(['ajax']);
}