contributte / apitte-skeleton

🎁 API / REST API / JSON API / PSR-7 / Middlewares project skeleton based on Nette Framework (@nette), Apitte (@apitte), Doctrine (@nettrine) and Contributte (@contributte) libraries by @f3l1x.
https://examples.contributte.org/apitte-skeleton/
MIT License
40 stars 17 forks source link
api apitte contributte nette-framework nettrine project projectte template

Website 🚀 contributte.org | Contact 👨🏻‍💻 f3l1x.io | Twitter 🐦 @contributte


Goal

Main goal is to provide best prepared API starter-kit project for Nette-Apitte developers.

Focused on:

You can try it out yourself either by running it with docker, or more easily with docker-compose.

Demo

https://examples.contributte.org/apitte-skeleton/

Install with docker

1) At first, use composer to install this project.

   composer create-project -s dev contributte/apitte-skeleton

2) After that, you have to setup database.

1. Setup PostgreSQL 10. You can start it manually or use docker image `dockette/postgres:15`.

   ```bash
   docker run -it -p 5432:5432 -e POSTGRES_PASSWORD=contributte -e POSTGRES_USER=contributte dockette/postgres:15
   ```

   Or use make task, `make docker-postgres`.

2. Setup MariaDB 10.4. You can start it manually or use docker image `mariadb:10.4`.

   ```bash
   docker run -it -d -p 3306:3306 -e MARIADB_ROOT_PASSWORD=contributte -e MARIADB_PASSWORD=contributte -e MARIADB_USER=contributte -e MARIADB_DATABASE=contributte mariadb:10.4
   ```

   Or use make task, `make docker-mariadb`.

3) Custom configuration file is located at config/local.neon. Edit it if you want.

Default configuration should look like this. Pick PostgreSQL or MariaDB.

   # Host Config
   parameters:

       # Database
       database:

           # Postgres
           driver: pdo_pgsql
           host: database
           dbname: contributte
           user: contributte
           password: contributte
           port: 5432

           # MariaDB
           driver: pdo_mysql
           host: database
           dbname: contributte
           user: contributte
           password: contributte
           port: 3306

4) Ok database is now running and application is configured to connect to it. Let's create initial data.

Run NETTE_DEBUG=1 bin/console migrations:migrate to create tables. Run NETTE_DEBUG=1 bin/console doctrine:fixtures:load --append to create first user(s).

Or via task make build.

5) Start your devstack or use PHP local development server.

You can start PHP server by running php -S localhost:8000 -t www or use prepared make task make dev.

6) Open http://localhost and enjoy!

Take a look at:

Install with docker compose

1) At first, use composer to install this project.

   composer create-project -s dev contributte/apitte-skeleton

2) Modify config/local.neon and set host to postgres or mariadb

Default configuration should look like this. There is preconfigured database. Pick PostgreSQL or MariaDB.

   # Host Config
   parameters:

       # Database
       database:

           # Postgres
           driver: pdo_pgsql
           host: database
           dbname: contributte
           user: contributte
           password: contributte
           port: 5432

           # MariaDB
           driver: pdo_mysql
           host: database
           dbname: contributte
           user: contributte
           password: contributte
           port: 3306

3) Run docker-compose up

4) Open http://localhost and enjoy!

Take a look at:

(Optional) REST API documentation

Since we have OpenAPI specification available at /api/public/v1/openapi/meta you just need to add UI for it (e.g. to www/doc directory or as a standalone application).

Available options are:

Features

Here is a list of all features you can find in this project.

Composer packages

Take a detailed look :eyes: at each single package.

Doctrine

Nette

Symfony

Demo

Development

See how to contribute to this package.

This package is currently maintaining by these authors.


Consider to support contributte development team. Also thank you for using this project.