A bundle of tools to handle Waynabox API request and responses.
public function helloAction(Request $request)
{
try {
$serviceResponseData = $this->myService($request->request->all());
return ApiResponseFactory::buildAcceptedResponse($serviceResponse->response())->output();
} catch (MyAuthenticationFailedException $e) {
return ApiResponseFactory::buildAuthenticationFailedResponse($e->getMessage())->output();
} catch (\Exception $e) {
return ApiResponseFactory::buildBadRequestResponse($e->getMessage())->output();
}
}
public function helloAction(Request $request)
{
$response = ApiResponseFactory::buildAcceptedResponse('text on response data section');
return $response->output();
}
public function helloAction(Request $request)
{
$response = ApiResponseFactory::buildCreatedResponse('text on response data section');
return $response->output();
}
public function helloAction(Request $request)
{
$response = ApiResponseFactory::buildBadRequestResponse('text on response error section');
return $response->output();
}
public function helloAction(Request $request)
{
$response = ApiResponseFactory::buildAuthenticationFailedResponse('text on response error section');
return $response->output();
}
public function helloAction(Request $request)
{
$response = ApiResponseFactory::buildNotFoundResponse('text on response error section');
return $response->output();
}
public function helloAction(Request $request)
{
$response = ApiResponseFactory::buildServerErrorResponse('text on response error section');
return $response->output();
}
Use this to output a previously generated json as string on browser. It puts as header 'Content-type: json' This option will add additional data on json response for status (OK/KO), error response and timestamp.
$data = '{"param1":"value 1","param2":"value 2"}';
return ApiResponseFactory::buildAcceptedResponse(
$data
)->output();
//outputs '{"status":"OK","data":{"param1":"value 1","param2":"value 2"},"error":{},"date":"2017-01-01 01:01:01"}'
Use this to output a string as plain text on browser. It puts as header 'Content-type: text/html'
$data = '<html>hello</html>';
return ApiResponseFactory::buildAcceptedResponse(
$data,
OutputFormat::HTML
)->output();
//outputs '<html>hello</html>'
Use this to output a string as plain text on browser. It puts as header 'Content-type: text'
$data = 'my text';
return ApiResponseFactory::buildAcceptedResponse(
$data,
OutputFormat::PLAIN_TEXT
)->output();
//outputs 'my text'
Use this to output an array with data as a json encoded on browser. It puts as header 'Content-type: json'.
This option will add additional data on json response for status (OK/KO), error response and timestamp
$data = ['param1' => 'value 1', 'param2' => 'value 2'];
return ApiResponseFactory::buildAcceptedResponse(
$data,
OutputFormat::JSON
)->output();
//outputs '{"status":"OK","data":{"param1":"value 1","param2":"value 2"},"error":{},"date":"2017-01-01 01:01:01"}'
Use this to output a specific PDF binary stream on browser as a direct download. It puts as header 'Content-type: application/pdf'
$data = #myBinaryStream;
return ApiResponseFactory::buildAcceptedResponse(
$data,
OutputFormat::BINARY_PDF
)->output();
//outputs a pdf file to download on browser