1. Go to this page and download the library: Download wakeapp/api-platform-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/ */
wakeapp / api-platform-bundle example snippets
declare(strict_types=1);
// app/AppKernel.php
class AppKernel extends Kernel
{
// ...
public function registerBundles()
{
$bundles = [
// ...
new Linkin\Bundle\SwaggerResolverBundle\LinkinSwaggerResolverBundle(),
new Wakeapp\Bundle\ApiPlatformBundle\WakeappApiPlatformBundle(),
];
return $bundles;
}
// ...
}
declare(strict_types=1);
namespace App\Guesser\ApiAreaGuesser;
use Symfony\Component\HttpFoundation\Request;
use Wakeapp\Bundle\ApiPlatformBundle\Guesser\ApiAreaGuesserInterface;
class ApiAreaGuesser implements ApiAreaGuesserInterface
{
/**
* {@inheritDoc}
*/
public function getApiVersion(Request $request): ?int
{
$apiVersionMatch = [];
preg_match('/^\/v([\d]+)\//i', $request->getPathInfo(), $apiVersionMatch);
if (empty($apiVersionMatch)) {
return null;
}
$apiVersion = (int) end($apiVersionMatch);
return $apiVersion;
}
/**
* {@inheritdoc}
*/
public function isApiRequest(Request $request): bool
{
return strpos($request->getPathInfo(), '/api') === 0;
}
}
declare(strict_types=1);
namespace App\Dto;
use Swagger\Annotations as SWG;
use Wakeapp\Component\DtoResolver\Dto\DtoResolverTrait;
use Wakeapp\Component\DtoResolver\Dto\DtoResolverInterface;
/**
* @SWG\Definition(
* type="object",
* description="Profile info",
* y(description="User's first name", example="John")
*/
protected $firstName;
/**
* @var string
*
* @SWG\Property(description="User's last name", example="Doe")
*/
protected $lastName;
/**
* @return string
*/
public function getEmail(): string
{
return $this->email;
}
/**
* @return string
*/
public function getFirstName(): string
{
return $this->firstName;
}
/**
* @return string
*/
public function getLastName(): string
{
return $this->lastName;
}
}
declare(strict_types=1);
namespace App\Controller;
use App\Dto\ProfileResultDto;
use Nelmio\ApiDocBundle\Annotation\Model;
use Swagger\Annotations as SWG;
use Symfony\Component\Routing\Annotation\Route;
use Wakeapp\Bundle\ApiPlatformBundle\Factory\ApiDtoFactory;
use Wakeapp\Bundle\ApiPlatformBundle\HttpFoundation\ApiResponse;
/**
* @Route("/api/profile")
*/
class ProfileController
{
/**
* Returns user profile
*
* @Route(methods={"GET"})
*
* @SWG\Response(
* response=ApiResponse::HTTP_OK,
* description="Successful result in 'data' offset",
* @Model(type=ProfileResultDto::class)
* )
*
* @param ApiDtoFactory $factory
*
* @return ApiResponse
*/
public function getProfile(ApiDtoFactory $factory): ApiResponse
{
// обработка данных
$resultDto = $factory->createApiDto(ProfileResultDto::class, [
'email' => '[email protected]',
'firstName' => 'Test',
'lastName' => 'User',
]);
return new ApiResponse($resultDto);
}
}
declare(strict_types=1);
namespace App\Dto;
use Swagger\Annotations as SWG;
use Wakeapp\Bundle\ApiPlatformBundle\Dto\MagicAwareDtoResolverTrait;
use Wakeapp\Component\DtoResolver\Dto\DtoResolverInterface;
/**
* @SWG\Definition(
* type="object",
* description="Update profile info",
* */
protected $firstName;
/**
* @var string
*
* @SWG\Property(description="User's last name", example="Doe")
*/
protected $lastName;
/**
* @return string
*/
public function getFirstName(): string
{
return $this->firstName;
}
/**
* @return string
*/
public function getLastName(): string
{
return $this->lastName;
}
}
declare(strict_types=1);
namespace App\Controller;
use App\Dto\UpdateProfileEntryDto;
use Nelmio\ApiDocBundle\Annotation\Model;
use Swagger\Annotations as SWG;
use Symfony\Component\Routing\Annotation\Route;
use Wakeapp\Bundle\ApiPlatformBundle\HttpFoundation\ApiResponse;
/**
* @Route("/api/profile")
*/
class ProfileController
{
/**
* Update user password
*
* @Route("/{email}", methods={"PATCH"})
*
* @SWG\Parameter(name="email", in="path", type="string",
declare(strict_types=1);
namespace App\Dto;
use Swagger\Annotations as SWG;
use Wakeapp\Bundle\ApiPlatformBundle\Dto\ApiResultDto as BaseApiResultDto;
use Wakeapp\Component\DtoResolver\Dto\DtoResolverInterface;
/**
* @SWG\Definition(
* type="object",
* description="Common API response object template",
* rotected $message;
/**
* @var DtoResolverInterface|null
*
* @SWG\Property(type="object", description="Some specific response data or null")
*/
protected $data = null;
}
declare(strict_types=1);
use Nelmio\ApiDocBundle\Annotation\Model;
use Swagger\Annotations as SWG;
use Wakeapp\Bundle\ApiPlatformBundle\HttpFoundation\ApiRequest;
use Wakeapp\Bundle\ApiPlatformBundle\HttpFoundation\ApiResponse;
use Wakeapp\Bundle\ApiPlatformBundle\Factory\ApiDtoFactory;
class ProfileController
{
/**
* ...
*
* @SWG\Parameter(name="username", in="query", type="string", /
public function getProfile(ApiRequest $apiRequest, ApiDtoFactory $factory): ApiResponse
{
return new ApiResponse();
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.