Skip to content
/ Hello-API Public
forked from apiato/apiato

A Starter providing everything to build a modern API, with PHP and Laravel Porto.

License

Notifications You must be signed in to change notification settings

2wce/Hello-API

 
 

Repository files navigation

Hello API

forthebadge

The Hello World of an API : )

Build Status

If you used Hello API before 21 June 2016 you may need to check the branch 0.1.


WHAT

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

Laravel Porto is the implementation of the Porto Software Architectural Pattern in Laravel 5.1.

HOW

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

WHY

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.

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.

Content

Features

The Hello API comes with great features:

  • Token Based Authentication (with JWT "JSON Web Tokens").
  • 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).
  • Useful 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).
  • 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.
  • Fantastic Software Architectural Pattern (using C-SAP).
  • Fully Object Oriented Code, implementing the best design patterns and coding techniques.
  • Following the PSR-2/PSR-4 coding/autoloading standards.
  • Runs on PHP 5.5.9+ (including PHP 7 and HHVM).
  • Full detailed documentation.
  • 100% customizable and Open Code.

Technologies

Hello API is built with the latest & hottest Technologies:

  • PHP (Server-Side Scripting Language)
  • Laravel 5.1 LTS (Back-End Framework)
  • Laravel CSAP (C-SAP with Laravel)
  • PHPUnit (PHP Testing Framework)
  • MySQL (RDBMS Database)
  • Redis (Cache System)
  • API Doc JS (API Documentation Generator)
  • Laravel Homestead (Virtual Server Provisioning via Vagrant)
  • 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)

Full Documentation

To get an overview of how the code is designed you MUST read about the Porto (Software Architectural Pattern).

Hello API is built on top of Laravel Porto (the implementation of Porto in Laravel), so you will need to refer to the Laravel Porto Documentation for everything. Below is the Hello API specific documentation:

Contribution

Just do it. You are welcome :)

Credits

Authors Follow on Twitter Ask for Help Hire
Mahmoud Zalt (Creator) @Mahmoud_Zalt Get help on Codementor mahmoud@zalt.me

License

The MIT License (MIT).

About

A Starter providing everything to build a modern API, with PHP and Laravel Porto.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 99.5%
  • Other 0.5%