If you used Hello API before
21 June 2016
you may need to check the branch 0.1.
Hello API is a Starter providing everything to build a modern API-Centric application, with PHP and Laravel 5.2.
It gives all the common functionalities of a modern API, to help building API-Centric Apps faster.
It uses the best framework, packages, tools and conventions. All configured to work together in a beautiful piece of code.
Setting up an API from scratch takes a lot of time, even with the existence of the many great Technologies and Tools. Hello API saves you time.
Web developers are used to serve HTML pages directly from the Backend. However, this traditional method has many disadvantages in nowadays.
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).
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 front-end (Web + Mobile) and back-end developers to work on their codes in parallel. After the front-end Apps are ready they get attached to the back-end (API-Centric) code to start functioning. This leads to zero decoupling between the front-end and the back-end 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.
The project is currently under heavy development. So expect things to change very quickly. Also note that there's no stable release till this date.
The Hello API comes with great features:
- Token Based Authentication (with JWT "JSON Web Tokens").
- Social Authentication supported out of the box (Facebook, Twitter, Google+)
- API Throttling (Rate Limiting).
- User Endpoints (Login, Logout, Register, List, Update, Delete, Search).
- Functional Tests covering all the existing Endpoints (using PHPUnit).
- Data Caching support (with auto clearing on Create, Update and Delete).
- Query Parameters support out of the box (orderBy, sortedBy, filter, include).
- Full-text search support out of the box (search, searchFields).
- Auto API Documentation generator (using the API Doc JS).
- Authorization system (ACL), to control which consumer can access your API.
- Supports CORS "Cross-Origin Resource Sharing".
- Localization support (multiple langauges via Content-Language header).
- Automatic Data Pagination (meta links to next and previous data).
- Support Visitors Authentication by Device ID (Use first register later).
- Auto detect and save device type and platform.
- Easy and auto request input validation.
- Type-Casting JSON responses with Transformers.
- Custom Tests Helpers for faster automated testing (using PHPUnit).
- RESTful API (supporting all HTTP verbs).
- Optional support for the JSON API specification v1.0.
- Automatic dates conversion to ISO format in responses.
- Support for JSON with padding (JSONP).
- Scalable, Stateless and Distributable Application on the server.
- Maintainable and scalable Software Architectural Pattern (using Porto).
- Fully Object Oriented Code, implementing the best design patterns.
- Following the PSR-2/PSR-4 coding/autoloading standards.
- Easy to send Emails.
- Easy to support payment gateways (Ready for Stripe and Paypal).
- Runs on PHP 5.5.9+ (including PHP 7 and HHVM).
- Fully detailed documentation.
- 100% customizable and Open Code.
Hello API is architectured using the Porto Software Architectural Pattern.
Thus you MUST read the Porto Document before starting.
Hello API is built with the latest & hottest Technologies:
- PHP (Server-Side Scripting Language)
- Laravel 5.2 (PHP Framework)
- PHPUnit (PHP Testing Framework)
- MySQL (RDBMS Database)
- Redis (Cache System)
- API Doc JS (API Documentation Generator)
- Third Party Packages:
- Dingo API (A RESTful API package)
- JWT (JSON Web Token Authentication)
- CORS (Cross-Origin Resource Sharing headers support)
- Repository (Repositories to abstract the database layer)
- Entrust (Role-based Permissions)
- Guzzle (PHP HTTP client)
- Predis (PHP client library for Redis)
- Stripe Laravel (Stripe API client)
- Laravel Paypal Payment (Paypal API client)
- Agent (Detect users agent)
- Socialite (Social Authentication)
Just do it. You are welcome :)
Authors | Follow on Twitter | Ask for Help | Hire |
---|---|---|---|
Mahmoud Zalt (Creator) | @Mahmoud_Zalt | mahmoud@zalt.me |
The MIT License (MIT).