PHP code example of nilportugues / jsonapi-bundle
1. Go to this page and download the library: Download nilportugues/jsonapi-bundle library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once ('vendor/autoload.php' );
nilportugues / jsonapi-bundle example snippets
class AppKernel extends Kernel
{
public function registerBundles ()
{
$bundles = array (
new NilPortugues\Symfony\JsonApiBundle\NilPortuguesSymfonyJsonApiBundle(),
);
}
}
$post = new Post(
new PostId(9 ),
'Hello World' ,
'Your first post' ,
new User(
new UserId(1 ),
'Post Author'
),
[
new Comment(
new CommentId(1000 ),
'Have no fear, sers, your king is safe.' ,
new User(new UserId(2 ), 'Barristan Selmy' ),
[
'created_at' => (new DateTime('2015/07/18 12:13:00' ))->format('c' ),
'accepted_at' => (new DateTime('2015/07/19 00:00:00' ))->format('c' ),
]
),
]
);
namespace AppBundle \Controller ;
use NilPortugues \Symfony \JsonApiBundle \Serializer \JsonApiResponseTrait ;
use Symfony \Bundle \FrameworkBundle \Controller \Controller ;
class PostController extends Controller
{
use JsonApiResponseTrait ;
public function getPostAction ($postId)
{
$post = $this ->get('doctrine.post_repository' )->find($postId);
$serializer = $this ->get('nil_portugues.serializer.json_api_serializer' );
$transformer = $serializer->getTransformer();
$transformer->setSelfUrl($this ->generateUrl('get_post' , ['postId' => $postId], true ));
$transformer->setNextUrl($this ->generateUrl('get_post' , ['postId' => $postId+1 ], true ));
return $this ->response($serializer->serialize($post));
}
}
namespace \NilPortugues \Api \JsonApi \Http \Request ;
class Request
{
public function __construct (ServerRequestInterface $request = null) { ... }
public function getIncludedRelationships () { ... }
public function getSort () { ... }
public function getPage () { ... }
public function getFilters () { ... }
public function getFields () { ... }
}
private function errorResponse ($json) ;
private function resourceCreatedResponse ($json) ;
private function resourceDeletedResponse ($json) ;
private function resourceNotFoundResponse ($json) ;
private function resourcePatchErrorResponse ($json) ;
private function resourcePostErrorResponse ($json) ;
private function resourceProcessingResponse ($json) ;
private function resourceUpdatedResponse ($json) ;
private function response ($json) ;
private function unsupportedActionResponse ($json) ;
namespace AppBundle \Controller ;
use NilPortugues \Symfony \JsonApiBundle \Serializer \JsonApiResponseTrait ;
use Symfony \Bundle \FrameworkBundle \Controller \Controller ;
class PostController extends Controller
{
use JsonApiResponseTrait ;
public function getPostAction ($postId)
{
$post = $this ->get('doctrine.post_repository' )->find($postId);
$serializer = $this ->get('nil_portugues.serializer.json_api_serializer' );
$transformer = $serializer->getTransformer();
$transformer->setSelfUrl($this ->generateUrl('get_post' , ['postId' => $postId], true ));
$transformer->setNextUrl($this ->generateUrl('get_post' , ['postId' => $postId+1 ], true ));
return $this ->response($serializer->serialize($post));
}
}