I am trying to follow Will Durand's tutorial on how to set up a good REST API with Symfony2. However I am failing in the very beginning as I get this error:
The controller must return a response (Array(welcome => Welcome to my API) given).
Something basic must be wrong with my very basic configuration. I have tried different setting for the fos_rest
config, but the configuration reference doesn't provide to be very helpful as I do not really understand what the single settings do.
My setup:
//config.yml
sensio_framework_extra:
view:
annotations: true
fos_rest: ~
//Controller
<?php
namespace Acme\Bundle\ApiBundle\Controller;
use FOS\RestBundle\Controller\Annotations as Rest;
class DefaultController
{
/**
* @Rest\View
*/
public function indexAction()
{
return array(
'welcome' => 'Welcome to my API'
);
}
}
My API should return XML oder JSON based on the accept header. There will never be an html output.
I fixed it! The config needs to look like this:
sensio_framework_extra:
view:
annotations: false
fos_rest:
view:
view_response_listener: true
I spending a day for searching working configuration:
sensio_framework_extra:
view: { annotations: false }
router: { annotations: true }
fos_rest:
param_fetcher_listener: true
body_listener: true
format_listener: true
view:
view_response_listener: 'force'
formats:
xml: true
json : true
templating_formats:
html: true
force_redirects:
html: true
failed_validation: HTTP_BAD_REQUEST
default_engine: twig
routing_loader:
default_format: json
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With