<commit_before># Hello API


![](http://s33.postimg.org/kd4gvx1lb/hello_api.jpg)



[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/Porto-SAP/Hello-API/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/Porto-SAP/Hello-API/?branch=master)
[![Build Status](https://travis-ci.org/Porto-SAP/Hello-API.svg?branch=master)](https://travis-ci.org/Porto-SAP/Hello-API)
[![Build Status](https://scrutinizer-ci.com/g/Porto-SAP/Hello-API/badges/build.png?b=master)](https://scrutinizer-ci.com/g/Porto-SAP/Hello-API/build-status/master)
[![Dependency Status](https://www.versioneye.com/user/projects/578988f4c3d40f0046852116/badge.svg?style=flat-square)](https://www.versioneye.com/user/projects/578988f4c3d40f0046852116)
[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/Porto-SAP/Hello-API/master/LICENSE)
[![Hello-API](https://img.shields.io/badge/Status-Awesome-brightgreen.svg)](https://github.com/Porto-SAP/Hello-API)


#### The `Hello World` of API's.

[![forthebadge](http://forthebadge.com/images/badges/ages-12.svg)](https://www.zalt.me)






> The project is currently under heavy development. 
So expect major updates without notice.
Also note that there's **no stable release** till this date.




## Content

* [Introduction](#Introduction)
* [Features](#Features)
* [Chat](#Chat)
* [Documentation](#Documentation)
* [Contribution](#Contribution)
* [Credits](#Credits)
* [License](#License)

> If you used **Hello API** before `21 June 2016` you may need to check the branch [0.1](https://github.com/Porto-SAP/Hello-API/tree/release-0.1)


<a name="Introduction"></a>
## Into


### What is Hello API

Hello API is a **Starter** providing everything to build a modern API-Centric application, with **PHP** and **Laravel 5.3**.

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.


### Why API-Centric Apps

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 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.




<a name="Features"></a>
## Features

>The Hello API comes with great features:

- Token Based Authentication (with JWT "JSON Web Tokens").
- Authorization system (ACL), with Default Super Admin seeding (Roles & Permissions).
- Query Parameters support out of the box (orderBy, sortedBy, filter, include).
- API Throttling (Rate Limiting).
- Full-text search support out of the box (search, searchFields).
- User Endpoints (Login, Logout, Register, List, Update, Delete, Search).
- Ready Middlewares for WEB, API and App Authentication.
- Ready Admin dashboard infrastructure (just drop your admin views).
- Auto API Documentation generator (using the API Doc JS).
- Support ID hashing, to hide original IDs from users (using HashID).
- Data Caching support (with auto clearing on Create, Update and Delete).
- Supports CORS "Cross-Origin Resource Sharing".
- 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 Debugger (easy test your Apps requests).
- Type-Casting JSON responses with Transformers.
- Custom Tests Helpers for faster automated testing (using PHPUnit).
- Optional support for the JSON API specification v1.0.
- Support Visitors Authentication by Device ID (Use first register later).
- Automatic dates conversion to ISO format in responses.
- Send Emails from App to User & User to App (Welcome, Email Confirmation, Contact Us,...).
- Optional support for JSON with padding (JSONP).
- Maintainable and scalable Software Architectural Pattern (using Porto SAP).
- Easy to support payment gateways (Ready for Stripe and Paypal).
- Functional Tests covering all the existing Endpoints (using PHPUnit).
- Fully detailed documentation (on hello-api.readme.io/docs).
- 100% customizable and Open Code.
- And much more...


<a name="Chat"></a>
## Chat

Join our chatting room on Gitter by click on the icon below

[![Gitter](https://badges.gitter.im/porto-sap/Lobby.svg)](https://gitter.im/porto-sap/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)



<a name="Documentation"></a>
## Documentation

**Hello API** is architectured using the **Porto** Software Architectural Pattern. 
<br>
Thus you MUST read the [Porto Document](https://github.com/Porto-SAP/Documentation)  before starting.

###[Full Documentation](https://hello-api.readme.io/docs/installation)




<a name="Contribution"></a>
## Contribution

Just do it! :)



[![SensioLabsInsight](https://insight.sensiolabs.com/projects/1bdf99d7-13b1-46ca-8576-c6a702f9afd7/big.png)](https://insight.sensiolabs.com/projects/1bdf99d7-13b1-46ca-8576-c6a702f9afd7)



<a name="Credits"></a>
## Credits

| Contributors           | Twitter                                 | Ask for Help                                                                                                          | Contact / Hire  | Site            |
|------------------------|---------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|-----------------|-----------------|
| [<NAME>](https://github.com/Mahmoudz) (Creator) | @[Mahmoud_Zalt](https://twitter.com/Mahmoud_Zalt) | [![Get help on Codementor](https://cdn.codementor.io/badges/get_help_github.svg)](https://www.codementor.io/mahmoudz) | <EMAIL> | [https://zalt.me](https://zalt.me/) |<commit_msg>Update readme for the first stable release.<commit_after># Hello API


![](http://s33.postimg.org/kd4gvx1lb/hello_api.jpg)



[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/Porto-SAP/Hello-API/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/Porto-SAP/Hello-API/?branch=master)
[![Build Status](https://travis-ci.org/Porto-SAP/Hello-API.svg?branch=master)](https://travis-ci.org/Porto-SAP/Hello-API)
[![Build Status](https://scrutinizer-ci.com/g/Porto-SAP/Hello-API/badges/build.png?b=master)](https://scrutinizer-ci.com/g/Porto-SAP/Hello-API/build-status/master)
[![Dependency Status](https://www.versioneye.com/user/projects/578988f4c3d40f0046852116/badge.svg?style=flat-square)](https://www.versioneye.com/user/projects/578988f4c3d40f0046852116)
[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/Porto-SAP/Hello-API/master/LICENSE)
[![Hello-API](https://img.shields.io/badge/Status-Awesome-brightgreen.svg)](https://github.com/Porto-SAP/Hello-API)


#### A `Hello World` project for API's.

[![forthebadge](http://forthebadge.com/images/badges/ages-12.svg)](https://www.zalt.me)


## Content

* [Introduction](#Introduction)
* [Features](#Features)
* [Chat](#Chat)
* [Documentation](#Documentation)
* [Contribution](#Contribution)
* [Credits](#Credits)
* [License](#License)

> If you used **Hello API** before `21 June 2016` you may need to check the branch [0.1](https://github.com/Porto-SAP/Hello-API/tree/release-0.1)


<a name="Introduction"></a>
## Into


### What is Hello API

Hello API is a **Starter** providing everything to build a modern API-Centric application, with **PHP** and **Laravel 5.3**.

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.


### Why API-Centric Apps

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 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.




<a name="Features"></a>
## Features

>The Hello API comes with great features:

- Token Based Authentication (with JWT "JSON Web Tokens").
- Authorization system (ACL), with Default Super Admin seeding (Roles & Permissions).
- Query Parameters support out of the box (orderBy, sortedBy, filter, include).
- API Throttling (Rate Limiting).
- Full-text search support out of the box (search, searchFields).
- User Endpoints (Login, Logout, Register, List, Update, Delete, Search).
- Ready Middlewares for WEB & API Authentication.
- Auto API Documentation generator (using the API Doc JS).
- Support ID hashing, to hide original IDs from users (using HashID).
- Data Caching support (with auto clearing on Create, Update and Delete).
- Supports CORS "Cross-Origin Resource Sharing".
- 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).
- 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 hello-api.readme.io/docs).
- 100% customizable and Open Code.
- And much more...


<a name="Chat"></a>
## Chat

Join our chatting room on Gitter by click on the icon below

[![Gitter](https://badges.gitter.im/porto-sap/Lobby.svg)](https://gitter.im/porto-sap/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)



<a name="Documentation"></a>
## Documentation

**Hello API** is architectured using the **Porto** Software Architectural Pattern. 
<br>
Thus you MUST read the [Porto Document](https://github.com/Porto-SAP/Documentation)  before starting.

###[Full Documentation](https://hello-api.readme.io/docs/installation)



[![SensioLabsInsight](https://insight.sensiolabs.com/projects/1bdf99d7-13b1-46ca-8576-c6a702f9afd7/big.png)](https://insight.sensiolabs.com/projects/1bdf99d7-13b1-46ca-8576-c6a702f9afd7)



<a name="Contribution"></a>
## Contribution

Just do it! :)




<a name="Credits"></a>
## Credits

| Contributors           | Twitter                                 | Ask for Help                                                                                                          | Contact / Hire  | Site            |
|------------------------|---------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|-----------------|-----------------|
| [<NAME>](https://github.com/Mahmoudz) (Creator) | @[Mahmoud_Zalt](https://twitter.com/Mahmoud_Zalt) | [![Get help on Codementor](https://cdn.codementor.io/badges/get_help_github.svg)](https://www.codementor.io/mahmoudz) | <EMAIL> | [https://zalt.me](https://zalt.me/) |
{'fraction_non_alphanumeric': 0.15083629758571104, 'fraction_numerical': 0.015287973965034436, 'mean_word_length': 3.512978142076503, 'pattern_counts': {'":': 0, '<': 33, '<?xml version=': 0, '>': 38, 'https://': 52, 'lorem ipsum': 0, 'www.': 8, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 15, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7333633', 'n_tokens_mistral': 4067, 'n_tokens_neox': 3753, 'n_words': 1240}