Potrzebuję obsługi tylko jednego formatu interfejsu API, który jest JSON i nie lubię {_format} w moich trasach. Czy można go usunąć?FOSRestBundle: Jak usunąć parametr {_format}?
Odpowiedz
W swojej config.yml, upewnij się, że masz to skonfigurowane:
fos_rest:
format_listener: true
routing_loader:
default_format: json
include_format: false
nadzieję, że pomoże
EDIT:
Jest przykładem w FOSRestBundle Docs, który pokazuje, jak używać ClassResourceInterface
. Największą różnicą jest to, że wcale nie musisz ręcznie definiować tras. Interfejs wygeneruje trasy na podstawie Twojej nazwy klasy i nazwy metody. Więc to jest bardzo ważne, co możesz wymienić swoje metody (można zastąpić, jak nazwa klasy jest używany, to jest pokazane w docs)
na przykład coś takiego:
use FOS\RestBundle\Routing\ClassResourceInterface {
class UserController implements ClassResourceInterface {
public function cgetAction() {
//return a list of all users
}
}
będzie generować trasy to wygląda tak: [GET] /users
. W ten sposób korzystam z pakietu i działa świetnie. Nie muszę też korzystać z opcji {_format}
w dowolnym miejscu, ponieważ nie muszę ręcznie definiować tras.
uwaga - zobacz również moją oryginalną odpowiedź, dokonałem edycji, która może również pomóc w sposobie korzystania z pakietu. Nie próbowałem używać pakietu tak, jak jesteś, więc nie jestem pewien, czy to zadziała, czy nie, ale docs wydaje się, że to zadziała.
Nie, to nie działa. Udało mi się to osiągnąć poprzez usunięcie 'type: rest' z' routing.yml' i użycie adnotacji takich jak '@Rest \ Get ("/user ")' w kontrolerze. –
Myślę, że to zależy od tego, w jaki sposób korzystasz z pakietu. Używam ClassResourceInterface i to działa dobrze. – Sehael
Czy możesz pokazać przykład użycia? –