Skip to content
 
 

Repository files navigation

Server_Scrabble

In teams of three you should design and implement a backend service that provides an API for a game «Scrabble». The service must accept requests and respond accordingly.

Развертывание и администрирование системы

Как развернуть систему

  1. Установить brew
  2. Установить Docker и PostgreSQL:
brew install --cask docker
brew install postgresql
  1. Запустить PostgreSQL:
brew services start postgresql
  1. Создать базу данных, к которой будет подключаться сервер
psql postgres
CREATE ROLE vapor_username WITH LOGIN PASSWORD 'vapor_password';
ALTER ROLE vapor_username CREATEDB;

psql postgres -U vapor_username;
CREATE DATABASE vapor_database;
  1. Запустить докер-контейнер с базой данных:
docker-compose up db
  1. Запустить сам проект, используя инструменты Xcode

Добавление API ключа:

Сначала нужно подключиться к базе данных:

psql vapor_database

После подключения ввести скрипт:

DO $$
DECLARE 
    key uuid := gen_random_uuid ();
BEGIN
INSERT INTO api_keys
(id, expires_at)
VALUES(key, NULL);
RAISE NOTICE 'New API key: %', key;
END $$;

Вместо NULL в expires_at можно указать время, до которого API ключ действителен

Использование API на клиентах

Эндпоинты API, которые доступны клиентам представены в Postman (чтобы посмотреть, на странице по ссылке нажмите "View Collection"):

Run In Postman

Как устроен запрос к API

  • У любого запроcа должен присутствовать header ApiKey: <YOUR_API_KEY> - ключ, который добавлен в базу данных, которая подключена к серверу. Если данный header не установлен или установлен с неправильным значением, пользователь получит ошибку
  • Для запросов, которым требуется авторизация (то есть всем, кроме /auth/login и /auth/register), должен присутствовать header Authorization: Bearer <JWT_TOKEN>, значением которого является JWT-токен, полученный при авторизации

About

In teams of three you should design and implement a backend service that provides an API for a game «Scrabble». The service must accept requests and respond accordingly.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages