https://github.com/jornatf/laravel-api-json-response
A Laravel Package that returns a JSON Response for APIs.
https://github.com/jornatf/laravel-api-json-response
api json json-api laravel laravel-package php
Last synced: 6 months ago
JSON representation
A Laravel Package that returns a JSON Response for APIs.
- Host: GitHub
- URL: https://github.com/jornatf/laravel-api-json-response
- Owner: jornatf
- License: mit
- Created: 2023-04-22T07:42:21.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-10-09T16:09:54.000Z (about 2 years ago)
- Last Synced: 2025-01-08T11:48:22.843Z (12 months ago)
- Topics: api, json, json-api, laravel, laravel-package, php
- Language: PHP
- Homepage: https://packagist.org/packages/jornatf/laravel-api-json-response
- Size: 42 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Laravel API Json Response
[](https://packagist.org/packages/jornatf/laravel-api-json-response)
[](https://github.com/jornatf/laravel-api-json-response/actions?query=workflow%3Arun-tests+branch%3Amain)
[](https://github.com/jornatf/laravel-api-json-response/actions?query=workflow%3A"Fix+PHP+code+style+issues"+branch%3Amain)
[](https://packagist.org/packages/jornatf/laravel-api-json-response)
A Laravel Package that returns a JSON Response for APIs. In some methods, you can return cool Json response for your API.
> #### If you like this package you can [Buy me a Coffee](https://www.buymeacoffee.com/jornatf) ☕️
## Installation
### Via composer:
```bash
composer require jornatf/laravel-api-json-response
```
## Usage
### Example 1:
> This example shows you how to use the basic required methods.
```php
all(), [
'title' => 'required|unique:posts|max:255',
'body' => 'required',
]);
if ($validator->fails()) {
// Status code 400 for "Bad Request"
return ApiResponse::response(400)
->addDetails($validator->errors())
->json();
}
$post = Post::create($validator->validated());
// Status code 200 for "Ok" or 201 for "Created"
return ApiResponse::response(201)
->addDatas($post)
->json();
}
}
```
**Success response:**
```json
{
"success": {
"status": 201,
"message": "Created",
"data": {
"id": 1,
"title": "Morbi in diam id dolor vehicula finibus",
"content": "
Lorem ipsum dolor sit amet, ...
",
"created_at": "2023-04-20 00:00:00",
"updated_at": "2023-04-20 00:00:00"
}
}
}
```
**Error response:**
```json
{
"error": {
"status": 404,
"message": "Not Found"
}
}
```
### Exemple 2:
> This example shows you how to use a method to find a model and return a JSON Reponse in a single line of code.
```php
json();
}
}
```
**If model found:**
```json
{
"success": {
"status": 200,
"message": "Post Found",
"data": {
"id": 1,
"title": "Morbi in diam id dolor vehicula finibus",
"content": "
Lorem ipsum dolor sit amet, ...
",
"created_at": "2023-04-20 00:00:00",
"updated_at": "2023-04-20 00:00:00"
}
}
}
```
**Else:**
```json
{
"error": {
"status": 404,
"message": "Post Not Found"
}
}
```
## Documentation
### Available methods:
```php
addMessage(string $message);
// To add datas to return when success:
$response->addDatas(array $datas);
// To add details (e.g. validator errors) when error:
$response->addDetails(mixed $details);
// or
$response->addDetails(array $details);
$response->addDetails(array $details);
// Last, formate response into json (required):
$response->json()
```
### Available status code:
| Status code | Response type | Default message |
| ----------- | ------------- | ---------------------------- |
| `200` | `success` | Ok
Model Found |
| `201` | `success` | Created |
| `202` | `success` | Accepted |
| `400` | `error` | Bad Request |
| `401` | `error` | Unauthorized |
| `403` | `error` | Forbidden |
| `404` | `error` | Not Found
Model Not Found |
| `405` | `error` | Method Not Allowed |
| `408` | `error` | Request Timeout |
| `429` | `error` | Too Many Requests |
| `500` | `error` | Internal Server Error |
| `502` | `error` | Bad Gateway |
| `503` | `error` | Service Unavailable |
## Testing
```bash
composer test
```
## Changelog
> Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.
## Contributing
> Feel free to contribute to this project to improve with new features or fix bugs 👍
## Credits
- [Jordan](https://github.com/jornatf)
- [All Contributors](../../contributors)
## License
The MIT License (MIT).
> Please see [License File](LICENSE.md) for more information.