1. Go to this page and download the library: Download apitte/negotiation 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/ */
apitte / negotiation example snippets
namespace App\Api\V1\Controllers;
use Apitte\Core\Annotation\Controller\ControllerPath;
use Apitte\Core\Annotation\Controller\Method;
use Apitte\Core\Annotation\Controller\Path;
use Apitte\Core\Http\ApiRequest;
use Apitte\Core\Http\ApiResponse;
use Apitte\Negotiation\Http\ArrayEntity;
/**
* @ControllerPath("/users")
*/
class UsersController extends BaseV1Controller
{
/**
* @Path("/")
* @Method("GET")
*/
public function index(ApiRequest $request, ApiResponse $response): ApiResponse
{
$entity = ArrayEntity::from([
[
'id' => 1,
'firstName' => 'John',
'lastName' => 'Doe',
'emailAddress' => '[email protected]',
],
[
'id' => 2,
'firstName' => 'Elon',
'lastName' => 'Musk',
'emailAddress' => '[email protected]',
],
]);
return $response
->withStatus(ApiResponse::S200_OK)
->withEntity($entity);
}
}
namespace App\Api\Transformer;
use Apitte\Core\Exception\ApiException;
use Apitte\Core\Http\ApiRequest;
use Apitte\Core\Http\ApiResponse;
use Apitte\Core\Http\ResponseAttributes;
use Apitte\Negotiation\Http\ArrayEntity;
use Apitte\Negotiation\Transformer\AbstractTransformer;
use Throwable;
class XmlTransformer extends AbstractTransformer
{
/**
* Encode given data for response
*
* @param mixed[] $context
*/
public function transform(ApiRequest $request, ApiResponse $response, array $context = []) : ApiResponse
{
if (isset($context['exception'])) {
return $this->transformError($context['exception'], $request, $response);
}
return $this->transformResponse($request, $response);
}
protected function transformResponse(ApiRequest $request, ApiResponse $response): ApiResponse
{
$data = $this->getEntity($response)->getData();
$content = $this->dataToXmlString($data);
$response->getBody()->write($content);
return $response
->withHeader('Content-Type', 'application/xml');
}
protected function transformError(Throwable $error, ApiRequest $request, ApiResponse $response): ApiResponse
{
if ($error instanceof ApiException) {
$code = $error->getCode();
$message = $error->getMessage();
} else {
$code = 500;
$message = 'Application encountered an internal error. Please try again later.';
}
return $response
->withStatus($code)
->withAttribute(ResponseAttributes::ATTR_ENTITY, ArrayEntity::from([
'status' => 'error',
'message' => $message,
]));
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.