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');
/* Start to develop here. Best regards https://php-download.com/ */
nilportugues / jsonapi-bundle example snippets
// app/AppKernel.php
// ...
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;
/**
* @\Symfony\Component\Routing\Annotation\Route("/post/{postId}", name="get_post")
*
* @param $postId
* @return \Symfony\Component\HttpFoundation\Response
*/
public function getPostAction($postId)
{
$post = $this->get('doctrine.post_repository')->find($postId);
$serializer = $this->get('nil_portugues.serializer.json_api_serializer');
/** @var \NilPortugues\Api\JsonApi\JsonApiTransformer $transformer */
$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;
/**
* Get a Post by its identifier. Will return Post, Comments and User data.
*
* @Nelmio\ApiDocBundle\Annotation\ApiDoc(
* resource=true,
* description="Get a Post by its unique id",
* )
*
* @Symfony\Component\Routing\Annotation\Route("/post/{postId}", name="get_post")
* @Sensio\Bundle\FrameworkExtraBundle\Configuration\Method({"GET"})
*
* @param $postId
* @return \Symfony\Component\HttpFoundation\Response
*/
public function getPostAction($postId)
{
$post = $this->get('doctrine.post_repository')->find($postId);
$serializer = $this->get('nil_portugues.serializer.json_api_serializer');
/** @var \NilPortugues\Api\JsonApi\JsonApiTransformer $transformer */
$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));
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.