bundle for API

This commit is contained in:
Nicolas Lœuillet 2015-01-28 18:14:04 +01:00
parent e4788de51e
commit 3e5a342f65
6 changed files with 44 additions and 29 deletions

View file

@ -2,6 +2,7 @@
use Symfony\Component\HttpKernel\Kernel;
use Symfony\Component\Config\Loader\LoaderInterface;
use Wallabag\ApiBundle\WallabagApiBundle;
class AppKernel extends Kernel
{
@ -20,6 +21,7 @@ class AppKernel extends Kernel
new JMS\SerializerBundle\JMSSerializerBundle(),
new Nelmio\ApiDocBundle\NelmioApiDocBundle(),
new Wallabag\CoreBundle\WallabagCoreBundle(),
new Wallabag\ApiBundle\WallabagApiBundle(),
);
if (in_array($this->getEnvironment(), array('dev', 'test'))) {

View file

@ -10,7 +10,7 @@ doc-api:
resource: "@NelmioApiDocBundle/Resources/config/routing.yml"
prefix: /api/doc
rest :
type : rest
resource : "routing_rest.yml"
prefix : /api
wallabag_api:
resource: "@WallabagApiBundle/Controller/"
type: annotation
prefix: /api

View file

@ -1,4 +0,0 @@
app_api :
type: rest
resource: "WallabagCoreBundle:Api"
name_prefix: api_

View file

@ -0,0 +1,29 @@
<?php
namespace Wallabag\ApiBundle\Controller;
use Nelmio\ApiDocBundle\Annotation\ApiDoc;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Wallabag\CoreBundle\Entity\Entries;
use FOS\RestBundle\Controller\Annotations\Get;
use Wallabag\CoreBundle\Entity\Users;
class EntryController extends Controller
{
/**
* Fetch an entry for a given user
*
* @Get("/u/{user}/entry/{entry}")
* @ApiDoc(
* requirements={
* {"name"="user", "dataType"="string", "requirement"="\w+", "description"="The username"},
* {"name"="entry", "dataType"="integer", "requirement"="\w+", "description"="The entry ID"}
* }
* )
* @return Entries
*/
public function getAction(Users $user, Entries $entry)
{
return $entry;
}
}

View file

@ -0,0 +1,9 @@
<?php
namespace Wallabag\ApiBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class WallabagApiBundle extends Bundle
{
}

View file

@ -1,21 +0,0 @@
<?php
namespace Wallabag\CoreBundle\Controller;
use Nelmio\ApiDocBundle\Annotation\ApiDoc;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Wallabag\CoreBundle\Entity\Entries;
class ApiController extends Controller
{
/**
* @ApiDoc(
* resource=true,
* description="This is a demo method. Just remove it",
* )
*/
public function getEntryAction()
{
return new Entries('Blobby');
}
}