Apiato

Build great API's faster with PHP and laravel 5.5


Documentation

What is Apiato

An open source framework for building scalable and testable API-Centric Apps with PHP on top of the latest stable version of Laravel.

Designed to help building scalable API's faster. It uses the best frameworks, tools and conventions in a creative way, to deliver a rich set of features and functionalities, that facilitates the development of modern API-Centric Apps.


Features

Authentication with OAuth2.0 for first/third-party clients (using Laravel Passport).

Role-Based Access Control (RBAC), seeded with a Super Admin, Roles and Permissions.

Query Parameters support (orderBy, sortedBy and filter) with full-text search.

Useful Endpoints for managing users, roles/permissions, tokens and more.

API Documentations generator, to generate API docs from PHP Docblock (using ApiDocJS).

Supports CORS (Cross-Origin Resource Sharing) and JSONP (JSON with padding).

Auto encoding/decoding of real ID's, to prevent exposing real ID's to the outer world.

API Throttling (rate limiting to control the rate of traffic received and protect your server).

Support "include" request parameter to load nested relationships.

Support Data Caching (with auto clearing on Create, Update and Delete).

API versioning in the URL or Header (versioning based on the route file name).

Exception handleing with custom JSON errors responses (using Exceptions Formatters).

Support Shallow ETag HTTP Header, to reduce client bandwidth.

Localization (easily switch between languages via request header field).

Automatic Data Pagination (meta links to the next and previous data).

WEB and API Auth Middlewares. With Proxy endpoints for safer authentication of first-party Apps.

Http Requests/Response Monitor and DB Query Debugger (from the Debugger Container).

Profiler, to display profiling data in the response (using Laravel Debugbar).

Social Authentication supported out of the box "Facebook, Twitter, Google+" (Using Socalite).

Type-Casting JSON responses and pagination results with Transformers (using Fractal).

Useful Tests Helpers for faster and more enjoyable automated testing (using PHPUnit).

Support multiple response payload formats (JSON API spec v1.0, Data Array & pure Data).

Automatic dates conversion to ISO format in responses, from the Transformers.

Support Stripe and WePay payment gateways (extandable to support other payment gatways).

System and user level settings out of the box (by the Settings Container).

Easy Validation and Authorization (for User data, accessibility and ownership) with Requests objects.

Maintainable and scalable Software Architectural Pattern (using the Porto SAP).

Code generator commands, for generating full CRUD operations, and other useful Commands.

Separation of UI's (Web, API and CLI) components (routes, controllers, requests, tests...).

Ready Admin dashboard infrastructure with Login view (at admin.apiato.dev).

Fully detailed documentation, with code samples, principles, definitions and guidelines.

100% customizable and open code. Using greatest frameworks, tools, packages and standards.



Uses API's