Я пытаюсь настроить маршрутизацию, используя FOSRestBundle (2.3.1) с Symfony (3.4.11).Следующее работает, как и ожидалось:
routing.yml:
fooV1:
type: rest
resource: AppBundle\Controller\V1\FooController
prefix: /api/v1
производство:
/bin/console debug:router
--------------------------------- -------- -------- ------ -------------------------------
Name Method Scheme Host Path
--------------------------------- -------- -------- ------ -------------------------------
get_foos GET ANY ANY /api/v1/foos.{_format}
get_foo GET ANY ANY /api/v1/foos/{bar}.{_format}
post_foos POST ANY ANY /api/v1/foos.{_format}
put_foos PUT ANY ANY /api/v1/foos/{bar}.{_format}
delete_foos DELETE ANY ANY /api/v1/foos/{bar}.{_format}
--------------------------------- -------- -------- ------ -------------------------------
Пока все хорошо.Теперь я хочу добавить API V2:
routing.yml:
fooV1:
type: rest
resource: AppBundle\Controller\V1\FooController
prefix: /api/v1
fooV2:
type: rest
resource: AppBundle\Controller\V2\FooController
prefix: /api/v2
Проблема в том, что маршруты / контроллер V1 , кажется, полностью исчезают, и только V2 Осталось (обратите внимание, что контроллеры имеют те же методы, меняется только формат ответа, следовательно, и новая версия):
/bin/console debug:router
--------------------------------- -------- -------- ------ -------------------------------
Name Method Scheme Host Path
--------------------------------- -------- -------- ------ -------------------------------
get_foos GET ANY ANY /api/v2/foos.{_format}
get_foo GET ANY ANY /api/v2/foos/{bar}.{_format}
post_foos POST ANY ANY /api/v2/foos.{_format}
put_foos PUT ANY ANY /api/v2/foos/{bar}.{_format}
delete_foos DELETE ANY ANY /api/v2/foos/{bar}.{_format}
--------------------------------- -------- -------- ------ -------------------------------
My fos_rest
config (в config.yml
):
fos_rest:
exception:
enabled: true
exception_controller: 'AppBundle\Controller\ExceptionController::showAction'
routing_loader:
default_format: json
view:
view_response_listener: force
formats:
rss: false
xml: false
json: true
jsonp: false
body_converter:
enabled: true
body_listener:
default_format: json
Какие-нибудь советы по созданию этой работы без необходимости переписывать всю маршрутизацию / контроллеры?Существующая документация выглядит не совсем точной, с документированными полями, которые не работают.