An open API service indexing awesome lists of open source software.

https://github.com/algrvvv/laraveldockvault-api

REST API на Laravel с использованием Docker, JWT-Auth, PostrgreSQL
https://github.com/algrvvv/laraveldockvault-api

docker jwt-auth laravel nginx php postgresql rest-api

Last synced: 2 months ago
JSON representation

REST API на Laravel с использованием Docker, JWT-Auth, PostrgreSQL

Awesome Lists containing this project

README

        

## About LaravelDockVault-API

LaravelDockVault-API - простенький REST API на основе Laravel
и с применением технологии контейнеризации Docker и с использованием nginx в качестве веб-сервера.

## Описание стека технологий

- Laravel Framework
- Версия: 10.x
- Элегантный синтаксис для удобного и быстрого программирования.
- Docker
- Контейнеризация приложения для изолированного и консистентного развертывания.
- Управление зависимостями и окружением в контейнерах для обеспечения переносимости.
- nginx
- Использование nginx в качестве веб-сервера для обеспечения эффективного проксирования запросов.
- JWT Аутентификация
- JSON Web Token для безопасной и эффективной аутентификации.
- Обмен данных между сервером и клиентом с использованием подписанных токенов.
- PostgreSQL
- Реляционная база данных.
- Высокая производительность и надежность для хранения и управления данными.
- REST API
- Разработка API, следующего принципам REST.

## Установка

> ВАЖНО ОТМЕТИТЬ!

Если вы запускаете проект с ОС WINDOWS, то скорее всего
у вас будет достаточная задержка между запросам и командами artisan.
Решением будет использование WSL и развертывание проект там

```bash
$ git clone https://github.com/algrvvv/LaravelDockVault-API.git
$ cd LaravelDockVault-API
# если win
$ ./setup-docker.bat
# если linux
$ chmod +x setup-docker.sh
$ ./setup-docker.sh
```

## Подключение к базе данных

Для подключения к бд и проверки всех ваших записей есть два способа.

Первый:

```bash
$ make psql
# либо
$ docker exec -it ldv_db psql -U
# по дефолту username = postgres
```
После этого в консоли можно написать, к примеру, `\dt`, чтобы
увидеть все зависимости или
`select * from movies;`, чтобы
вывести все фильмы.

## Работа с API

```http request
GET http://localhost:8876/api/auth/login
```
Данные для входа:
```json
{
"email": "[email protected]",
"password": "password"
}
```

После этого вам будет выдан JWT токен, а вместе с ним доступ
к следующим запросам:

| Method | Path | Action | Description |
|:------:|:-----------------:|:-------:|:-------------------------------:|
| GET | /api/auth/user | user | Вывод информации о пользователе |
| POST | /api/auth/refresh | refresh | Обновление токена |
| POST | /api/auth/logout | logout | Выход из аккаунта |
| GET | /api/movies | index | Вывод всех фильмов |
| GET | /api/movies/{id} | show | Вывод фильма по айди |
| POST | /api/movies | store | Добавление фильма |
| PATCH | /api/movies/{id} | update | Частичное обновление данных |
| PUT | /api/movies/{id} | update | Полное обновление данных |
| DELETE | /api/movies/{id} | destroy | Удаление фильма |