Proszę śledzić następny adres URL do zapoznania się z oficjalnej dokumentacji: http://symfony.com/doc/master/bundles/FOSRestBundle/index.html
Aby rozpocząć z tego pakietu, chciałbym zaproponować po pojedynczy spokojny kontrolera dokumentacji: http://symfony.com/doc/master/bundles/FOSRestBundle/5-automatic-route-generation_single-restful-controller.html
Znajdziesz tu również wyraźne przykłady (https://github.com/liip/LiipHelloBundle) o tym, co ten pakiet może zaoferować.
Kilka rzeczy z fragmentów Wysłany zwrócił moją uwagę:
widoczności metody kontrolera jest chroniona podczas gdy powinno być publiczne (http://symfony.com/doc/current/book/controller.html)
public function postDatasetAction(Request $request) {
// your code
}
W „routing. Plik "yml" utworzony do skonfigurowania trasy powinien zawierać nazwę wspomnianej metody kontrolera (PostDatasetAction zamiast Zestaw danych):
# routing.yml
data_query:
type: rest
pattern: /dataset
defaults: {_controller: DataAPIBundle:Dataset:postDatasetAction, _format: json }
requirements:
_method: POST
Poniżej znajduje się przykład konfiguracji trasy jak:
get_items GET Obojętnie /items.{json}
# config.yml
fos_rest:
allowed_methods_listener: true
format_listener:
default_priorities: ['json', html, '*/*']
fallback_format: json
prefer_extension: true
param_fetcher_listener: true
routing_loader:
default_format: json
view:
formats:
json: true
mime_types:
json: ['application/json', 'application/x-json']
force_redirects:
html: true
view_response_listener: force
# routing.yml
categories:
type: rest
resource: Acme\DemoBundle\Controller\ItemController
<?php
namespace Acme\DemoBundle\Controller
use FOS\RestBundle\Request\ParamFetcher;
use FOS\RestBundle\Controller\Annotations as Rest;
class ItemController
{
/**
* Get items by constraints
*
* @Rest\QueryParam(name="id", array=true, requirements="\d+", default="-1", description="Identifier")
* @Rest\QueryParam(name="active", requirements="\d?", default="1", description="Active items")
* @Rest\QueryParam(name="from", requirements="\d{4}-\d{2}-\d{2}", default="0000-00-00", description="From date")
* @Rest\QueryParam(name="to", requirements="\d{4}-\d{2}-\d{2}", default="0000-00-00", description="End date")
* @Rest\QueryParam(name="labels", array=true, requirements="\d+", default="-1", description="Labels under which items have been classifed")
*
* @Rest\View()
*
* @param ParamFetcher $paramFetcher
*/
public function getItemsAction(ParamFetcher $paramFetcher) {
$parameters = $paramFetcher->all();
// returns array which will be converted to json contents by FOSRestBundle
return $this->getResource($parameters);
}
}
P.S. : Trzeba będzie dodać widok, aby wyświetlić zasób jako strony HTML
To pytanie nie jest jasne, przynajmniej dla mnie (może dlatego, że nie znam FOSRestBundle), ale co chcesz wiedzieć?Wydaje się to całkiem jasne: masz ścieżkę pod 'yourWebSiteDomain/api/dataset', do której możesz uzyskać dostęp tylko metodą postu, a format żądania powinien być json. – DonCallisto
Wygląda na to, że użytkownik prosi o kanoniczny samouczek dotyczący budowania tras w FOSRestBundle. Jak wspomniał, każdy samouczek dotyczący FOSRestBundle obsługuje trasy inaczej. Rzeczywiście, musi istnieć pojedynczy zasób (tzn. Dokumentacja projektowa), który jednoznacznie definiuje możliwe zmienne konfiguracje, ponieważ obecnie nie jest oczywiste, co jest w ogóle możliwe. –