slim4-api-skeleton icon indicating copy to clipboard operation
slim4-api-skeleton copied to clipboard

Useful skeleton for RESTful API development with PHP and Slim 4.

SLIM 4 - API SKELETON

Useful skeleton for RESTful API development, using Slim PHP micro framework.

Used technologies: PHP 8, Slim 4, MySQL, PHPUnit, dotenv, Docker & Docker Compose.

Software License Build Status Coverage Status Packagist Version

:gear: QUICK INSTALL:

Requirements:

  • Composer.
  • PHP >= 8.0
  • MySQL/MariaDB.
  • or Docker.

With Composer:

You can create a new project running the following commands:

composer create-project maurobonfietti/slim4-api-skeleton [my-api-name]
cd [my-api-name]
composer test
composer start

Configure your connection to MySQL Server:

By default, the API use a MySQL Database.

You should check and edit this configuration in your .env file:

DB_HOST='127.0.0.1'
DB_NAME='yourMySqlDatabase'
DB_USER='yourMySqlUsername'
DB_PASS='yourMySqlPassword'
DB_PORT='3306'

With Docker:

If you like Docker, you can use this project with docker and docker-compose.

Minimal Docker Version:

  • Engine: 18.03+
  • Compose: 1.21+

Docker Commands:

# Create and start containers for the API.
docker-compose up -d --build

# Checkout the API.
curl http://localhost:8081

# Stop and remove containers.
docker-compose down

:package: DEPENDENCIES:

LIST OF REQUIRE DEPENDENCIES:

  • slim/slim: Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs.
  • slim/psr7: PSR-7 implementation for use with Slim 4.
  • pimple/pimple: A small PHP dependency injection container.
  • vlucas/phpdotenv: Loads environment variables from .env to getenv(), $_ENV and $_SERVER automagically.

LIST OF DEVELOPMENT DEPENDENCIES:

:bookmark: ENDPOINTS:

BY DEFAULT:

  • Hello: GET /

  • Health Check: GET /status

:video_camera: TUTORIAL:

Develop a RESTful API with PHP and Slim 4. [:movie_camera: :sound: :es: :argentina:]

https://user-images.githubusercontent.com/24535949/180607903-7efd2cfc-b1df-4ad6-8295-801585df3b83.mp4

:heart: WOULD YOU LIKE TO SUPPORT THIS PROJECT?

You can support this project inviting me a coffee :coffee: :yum: or giving a star to this repo :star: :blush:.

ko-fi

:sunglasses: THAT'S IT!

Now go build a cool RESTful API.