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

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

1 ответ

В вашем config.yml убедитесь, что вы настроили это:

fos_rest:
    format_listener: true
    routing_loader:
        default_format: json
        include_format: false

надеюсь, это поможет

РЕДАКТИРОВАТЬ:

В Документах FOSRestBundle есть пример, который показывает, как использовать ClassResourceInterface, Самым большим отличием является то, что вам не нужно вручную определять маршруты. Интерфейс будет генерировать ваши маршруты на основе вашего имени класса и имени метода. Поэтому очень важно, как вы называете ваши методы (вы можете переопределить, как используется имя класса, это показано в документации)

например, что-то вроде этого:

use FOS\RestBundle\Routing\ClassResourceInterface {

class UserController implements ClassResourceInterface {

    public function cgetAction() {
        //return a list of all users
    }
}

будет генерировать маршрут, который выглядит следующим образом: [GET] /users, Вот как я использую комплект, и он прекрасно работает. Я также не должен использовать {_format} вариант где угодно, потому что мне не нужно нигде определять маршруты вручную.

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

Другие вопросы по тегам