FOSRestBundle: как удалить параметр {_format}?

Мне нужно поддерживать только один формат API, который является JSON, и мне не нравится {_format} в моих маршрутах. Можно ли удалить его?

Ответ 1

В вашем 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} в любом месте, потому что мне не нужно определять маршруты вручную в любом месте.

note - см. также мой первоначальный ответ, я сделал редактирование, которое также может помочь в том, как вы используете пакет. Я не пробовал использовать пакет так, как вы, поэтому я не уверен, что это будет работать или нет, но docs кажется, что он будет работать.