Мне нужно поддерживать только один формат API, который является JSON, и мне не нравится {_format} в моих маршрутах. Можно ли его удалить?FOSRestBundle: Как удалить параметр {_format}?
ответ
В вашем config.yml, убедитесь, что у вас есть это сконфигурировано:
fos_rest:
format_listener: true
routing_loader:
default_format: json
include_format: false
Надежда, что помогает
EDIT:
Существует пример в FOSRestBundle Docs, который показывает, как использовать ClassResourceInterface
. Самое большое различие заключается в том, что вам не нужно вручную определять маршруты. Интерфейс будет генерировать ваши маршруты на основе вашего имени класса и имени метода. Так что это очень важно, что вы называете ваши методы (вы можете переопределить, как используется имя класса, это показано в документации)
, например, что-то вроде этого:
use FOS\RestBundle\Routing\ClassResourceInterface {
class UserController implements ClassResourceInterface {
public function cgetAction() {
//return a list of all users
}
}
будет генерировать маршрут это выглядит так: [GET] /users
. Вот как я использую комплект, и он отлично работает. Мне также не нужно использовать опцию {_format}
, потому что мне не нужно вручную определять маршруты в любом месте.
примечание - см. Также мой первоначальный ответ, я сделал редактирование, которое также может помочь в том, как вы используете комплект. Я не пробовал использовать пакет так, как вы, поэтому я не уверен, что это сработает или нет, но docs заставит его выглядеть так, как будто он будет работать.
Нет, это не работает. Я смог достичь этого, удалив 'type: rest' из' routing.yml' и используя аннотации, такие как '@Rest \ Get ("/user ")' в контроллере. –
Я полагаю, это зависит от того, как вы используете комплект. Я использую ClassResourceInterface, и это работает отлично. – Sehael
Можете ли вы показать пример того, как вы его используете? –