thuraaung2493 / laravel-api-helpers
A simple package for creating API endpoints with Laravel.
dev-main
2023-09-10 04:26 UTC
Requires
- php: ^8.2
- illuminate/support: ^10.12
- laravel/sanctum: ^3.2
- thecodingmachine/safe: ^2.5
Requires (Dev)
- laravel/pint: ^1.10
- nunomaduro/larastan: ^2.0
- nunomaduro/mock-final-classes: ^1.2
- orchestra/testbench: ^8.5
- pestphp/pest: ^2.6
- thecodingmachine/phpstan-safe-rule: ^1.2
This package is auto-updated.
Last update: 2025-03-10 07:50:14 UTC
README
It supports Laravel 9+ and PHP 8.1+
Description
This package contains many utility classes that assist in API creation.
Installation
Laravel
Require this package with composer using the following command:
composer require thuraaung2493/laravel-api-helpers@dev
Usage
Helper Classes for Json API Responses
All API Response classes implement the Responsable interface.
Class | Description |
---|---|
Thuraaung\ApiHelpers\Http\Responses\ModelResponse::class | It returns json response for JsonResource. |
Thuraaung\ApiHelpers\Http\Responses\CollectionResponse::class | It returns json response for CollectionResource. |
Thuraaung\ApiHelpers\Http\Responses\PaginatedResponse::class | It returns json response for PaginationResource. |
Thuraaung\ApiHelpers\Http\Responses\MessageResponse::class | It returns json response for Message. |
Thuraaung\ApiHelpers\Http\Responses\TokenResponse::class | It returns json response for Token. |
Thuraaung\ApiHelpers\Http\Responses\ApiErrorResponse::class | It returns json response for Errors. |
Thuraaung\ApiHelpers\Http\Responses\ApiValidationErrorsResponses::class | It returns json response for Validations. |
Response Formats see in responses.json
// Response Format for ModelResponse|CollectionResponse|MessageResponse|TokenResponse { "data": "", "message": "Success.", "status": 200 } // Response Format for ApiErrorResponse { "title": "Error!", "description": "Error Description", "status": 500 } // Response Format for ApiValidationErrorsResponse { "title": "Error!", "errors": [], "status": 422 }
Middleware Classes
Class | Description |
---|---|
Thuraaung\ApiHelpers\Http\Middleware\GzipEncodingResponse::class | It is used to apply Gzip encoding to API responses. |
Thuraaung\ApiHelpers\Http\Middleware\JsonApiResponse::class | It is used to apply default headers to API responses. |
To change default headers in config
php artisan vendor:publish --tab=api-helpers
DataObjects
Class | Description |
---|---|
Thuraaung\ApiHelpers\DataObjects\Header::class | Header Data Object. |
Thuraaung\ApiHelpers\DataObjects\Http\Headers\Accept::class | Accept Header Data Object. |
Thuraaung\ApiHelpers\DataObjects\Http\Headers\AcceptEncoding::class | Accept Encoding Header Data Object. |
Thuraaung\ApiHelpers\DataObjects\Http\Headers\ContentEncoding::class | Content Encoding Header Data Object. |
Thuraaung\ApiHelpers\DataObjects\Http\Headers\ContentLength::class | Content Length Header Data Object. |
Thuraaung\ApiHelpers\DataObjects\Http\Headers\ContentType::class | Content Type Header Data Object. |
Example
$accept = Accept::of( type: ContentType::JSON ); // Turn to Header $accept->asHeader(); // new Header( // key: 'Accept', // value: 'application/json', // ); // Turn to headers array $accept->headers(); // [ // 'Accept' => 'application/json', // ]
Enums
Class | Description |
---|---|
Thuraaung\ApiHelpers\Http\Enums\Status::class | HTTP Status. |
Thuraaung\ApiHelpers\Http\Enums\Scheme::class | Scheme. |
Thuraaung\ApiHelpers\Http\Enums\Methods::class | Request Methods. |
Thuraaung\ApiHelpers\Http\Enums\Headers\Connection::class | Connection Headers. |
Thuraaung\ApiHelpers\Http\Enums\Headers\ContentEncoding::class | Content Encoding Headers. |
Thuraaung\ApiHelpers\Http\Enums\Headers\ContentType::class | Content Type Headers. |