yangliuyu / apiato

A Starter project, designed to help you build scalable API's faster with PHP and Laravel.

Home Page:http://apiato.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

apiato

apiato Scrutinizer Code Quality Build Status Latest Stable Version Latest Unstable Version Dependency Status Build Status composer.lock License

Build better API's faster with PHP and Laravel 5.4.

forthebadge

Hello API was the first name of this project, it was renamed to apiato in March, 22, 2017 for no reason.

Into

What is apiato

apiato is a starter project, designed to help you build scalable API's faster, by providing tools and functionalities that facilitates the development of any API-Centric Applications.

apiato uses the best frameworks, tools and conventions in a very creative way to deliver a modern PHP Application.

Why!? setting up a solid API from scratch is time consuming (and time is money). apiato gives you the core features of robust API's, so you can focus on your business logic and deliver faster. Skip the repetitive work and enjoy the open source fun.

Intro to API-Centric Apps

Today we’re living in a digital era, where almost everything is connected to the Internet.

Building cross-devices applications is becoming a must. And to do it, you need APIs (Application Programing Interfaces).

Web developers are used to serve HTML pages directly from the Backend. However, this traditional method has many disadvantages nowadays.

API's can serve anything and everything (Mobile Apps, Web Apps, Smart TVs, Smart Watches,...). As well as, it can be exposed to the world allowing developers to interact with your Application and help growing your business.

API-Centric Apps allows Frontend (Web + Mobile) and Backend developers to work on their codes in parallel. After the Frontend Apps are ready they get attached to the Backend (API-Centric) code to start functioning. This leads to zero decoupling between the Frontend and the Backend code and also removes the dependencies. The API documentation acts as the contract between both sides during the development life cycle of all the Apps.

Features

The apiato comes with great features:

  • JSON Web Tokens (JWT) based Authentication, with pre-configured middleware's.
  • Role-Based Access Control (RBAC), seeded with a Super Admin Role and Permissions.
  • Query Parameters support (orderBy, sortedBy, filter, include) with full-text search (search, searchFields).
  • User basic Endpoints and more (Login, Logout, Register, List, Update, Delete, Search).
  • API Throttling (Rate Limiting).
  • Easy API Documentations generator from artisan commands (using the ApiDocJS tool).
  • Auto encoding/decoding of real ID's, to prevent exposing real ID's to the outer world.
  • Data Caching support out of the box (with auto clearing on Create, Update and Delete).
  • Supports for CORS "Cross-Origin Resource Sharing", allowing access from different domians.
  • Social Authentication supported out of the box (Facebook, Twitter, Google+).
  • Localization support (multiple languages via Content-Language header).
  • Automatic Data Pagination (meta links to next and previous data).
  • Http Requests/Response Monitor and DB Query Debugger (from the Debugger Container).
  • Type-Casting JSON responses with Transformers.
  • Custom Tests Helpers for faster automated testing (using PHPUnit).
  • Optional support for the JSON API specification v1.0.
  • Automatic dates conversion to ISO format in responses.
  • Optional support for JSON with padding (JSONP).
  • WEB and API Authentication Middlewares.
  • Ready Admin dashboard infrastructure (just drop your admin views).
  • Maintainable and scalable Software Architectural Pattern (using Porto SAP).
  • Support Stripe payment gateways (easy to extend and cover other gatways).
  • Functional Tests covering all the existing Endpoints (using PHPUnit).
  • Fully detailed documentation (on apiato.readme.io/docs).
  • 100% customizable and Open Code.
  • And much more...

SensioLabsInsight

Documentation

apiato is built with a new architectural pattern called Porto.

Porto SAP is a modern Software Architectural Pattern, designed to help developers organize their Code in a super maintainable way. It is very helpful for big and long term projects, as they tend to have higher complexity with time.

Reading the simple Porto document is essential before starting.

apiato full documentation here.

Get in touch

Join our Slack chatting room, by click on the Slack icon below.

Credits

Contributors Twitter Ask for Help Contact / Hire Site
Mahmoud Zalt @Mahmoud_Zalt Get help on Codementor mahmoud@zalt.me https://zalt.me

Donation

Your Support Matters.

Beerpay Beerpay

License

The MIT License (MIT).

About

A Starter project, designed to help you build scalable API's faster with PHP and Laravel.

http://apiato.io


Languages

Language:PHP 97.7%Language:HTML 1.9%Language:JavaScript 0.2%Language:Vue 0.1%Language:ApacheConf 0.1%