---
title: List API
tags: NBS, Ciputra, API
---
Success Response
===
```json=
{
"data": {
"user": [{
"id": 111
"name": "John Doe",
}],
"etc": {}
}
}
```
Error Response
===
```json=
{
"code": 422,
"message": "The given data was invalid",
"timestamp": "2020-01-10 07:42:06",
"_trace": { // optional, bisa di kirim atau tidak
"validations": {
"code": 422,
"message": "Missing/Invalid Input Parameter.",
"trace": {
"user_id": [
"The user id must be an integer."
]
}
}
}
}
```
Code
===
```php=
private function errorResponse(Response $response)
{
$error = [
'code' => '',
'message' => '',
'timestamp' => '',
];
$errorMapping = config("errors." . get_class($response->exception));
$error['code'] = (string)($errorMapping['code'] ?? Response::HTTP_INTERNAL_SERVER_ERROR);
$error['message'] = ($response->exception->getMessage()) ? $response->exception->getMessage() : ($errorMapping['message'] ?? 'Internal Server Error');
$error['timestamp'] = date('Y-m-d H:i:s');
if (config('app.debug') == 'true') {
$error['_trace']['exception'] = get_class($response->exception);
$error['_trace']['stack'] = $response->exception->getFile() . ' - ' . $response->exception->getLine();
$error['_trace']['message'] = $response->exception->getMessage();
//handle response for validation exception
if (isset($response->exception->status)
&& $response->exception->status
=== Response::HTTP_UNPROCESSABLE_ENTITY) {
$error['code'] = Response::HTTP_UNPROCESSABLE_ENTITY;
$error['_trace']['validations'] = $response->exception->getResponse()->original;
}
}
if (isset($errorMapping['status'])) {
$response->setStatusCode($errorMapping['status']);
}
$response->headers->set('Content-Type', 'application/json');
$response->setContent(json_encode($error));
return $response;
}
```