<?php
namespace Acme\ApiBundle\Controller;
class UserRestController extends \FOS\RestBundle\Controller\FOSRestController
{
public function optionsUsersAction()
{} // "options_users" [OPTIONS] /users
public function getUsersAction()
{} // "get_users" [GET] /users
public function getUserAction($slug)
{} // "get_user" [GET] /users/{slug}
public function postUsersAction()
{} // "post_users" [POST] /users
public function patchUsersAction()
{} // "patch_users" [PATCH] /users
public function putUserAction($slug)
{} // "put_user" [PUT] /users/{slug}
public function patchUserAction($slug)
{} // "patch_user" [PATCH] /users/{slug}
public function deleteUserAction($slug)
{} // "delete_user" [DELETE] /users/{slug}
public function newUsersAction()
{} // "new_users" [GET] /users/new
public function editUserAction($slug)
{} // "edit_user" [GET] /users/{slug}/edit
public function lockUserAction($slug)
{} // "lock_user" [PATCH] /users/{slug}/lock
public function banUserAction($slug)
{} // "ban_user" [PATCH] /users/{slug}/ban
public function removeUserAction($slug)
{} // "remove_user" [GET] /users/{slug}/remove
public function getUserCommentsAction($slug)
{} // "get_user_comments" [GET] /users/{slug}/comments
public function newUserCommentsAction($slug)
{} // "new_user_comments" [GET] /users/{slug}/comments/new
public function postUserCommentsAction($slug)
{} // "post_user_comments" [POST] /users/{slug}/comments
public function getUserCommentAction($slug, $id)
{} // "get_user_comment" [GET] /users/{slug}/comments/{id}
public function editUserCommentAction($slug, $id)
{} // "edit_user_comment" [GET] /users/{slug}/comments/{id}/edit
public function putUserCommentAction($slug, $id)
{} // "put_user_comment" [PUT] /users/{slug}/comments/{id}
public function postUserCommentVoteAction($slug, $id)
{} // "post_user_comment_vote" [POST] /users/{slug}/comments/{id}/vote
public function removeUserCommentAction($slug, $id)
{} // "remove_user_comment" [GET] /users/{slug}/comments/{id}/remove
public function deleteUserCommentAction($slug, $id)
{} // "delete_user_comment" [DELETE] /users/{slug}/comments/{id}
}
users:
type: rest
resource: Acme\ApiBundle\Controller\UserRestController
rjanot@rjanot-laptop:~/workspace/pb-api $ php app/console router:debug
[router] Current routes
Name Method Host Pattern
get_users GET ANY /api/users.{_format}
get_user GET ANY /api/users/{slug}.{_format}
post_users POST ANY /api/users.{_format}
put_users PUT ANY /api/users/{slug}.{_format}
delete_users DELETE ANY /api/users/{slug}.{_format}
get_user_comments GET ANY /api/users/{slug}/comments.{_format}
get_user_comment GET ANY /api/users/{slug}/comments/{id}.{_format}
...
<?php
namespace Acme\ApiBundle\Controller;
class CommentsController extends \FOS\RestBundle\Controller\FOSRestController
{
public function postCommentVoteAction($slug, $id)
{} // "post_user_comment_vote" [POST] /users/{slug}/comments/{id}/vote
public function getCommentsAction($slug)
{} // "get_user_comments" [GET] /users/{slug}/comments
public function getCommentAction($slug, $id)
{} // "get_user_comment" [GET] /users/{slug}/comments/{id}
public function deleteCommentAction($slug, $id)
{} // "delete_user_comment" [DELETE] /users/{slug}/comments/{id}
public function newCommentsAction($slug)
{} // "new_user_comments" [GET] /users/{slug}/comments/new
public function editCommentAction($slug, $id)
{} // "edit_user_comment" [GET] /users/{slug}/comments/{id}/edit
public function removeCommentAction($slug, $id)
{} // "remove_user_comment" [GET] /users/{slug}/comments/{id}/remove
}
users:
type: rest
resource: Acme\HelloBundle\Controller\UsersController
comments:
type: rest
parent: users
resource: Acme\HelloBundle\Controller\CommentsController
// src/Acme/DemoBundle/Controller/TestController.php
namespace Acme\DemoBundle\Controller;
use FOS\RestBundle\Controller\FOSRestController;
class TestController extends FOSRestController
{
public function getAction()
{
$data = array(
'text' => 'lol',
'assoc_array' => array(
'text' => 'truc',
'number' => 42,
'float' => 42.24,
'empty' => '',
),
'number' => 1,
'simple_array' => array('symfony','php','zend'),
);
$view = $this->view($data);
return $this->handleView($view, 200);
}
}
rjanot@rjanot-laptop:~/workspace/pb-api $ php app/console router:debug
[router] Current routes
Name Method Host Pattern
get_users GET ANY /api/users.{_format}
get_user GET ANY /api/users/{slug}.{_format}
post_users POST ANY /api/users.{_format}
put_users PUT ANY /api/users/{slug}.{_format}
delete_users DELETE ANY /api/users/{slug}.{_format}
# app/config/config.yml
fos_rest:
routing_loader:
default_format: json
view:
formats:
json: true
xml: false