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.
- Установить brew
- Установить Docker и PostgreSQL:
brew install --cask docker
brew install postgresql- Запустить PostgreSQL:
brew services start postgresql
- Создать базу данных, к которой будет подключаться сервер
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;
- Запустить докер-контейнер с базой данных:
docker-compose up db
- Запустить сам проект, используя инструменты Xcode
Сначала нужно подключиться к базе данных:
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, которые доступны клиентам представены в Postman (чтобы посмотреть, на странице по ссылке нажмите "View Collection"):
- У любого запроcа должен присутствовать header
ApiKey: <YOUR_API_KEY>- ключ, который добавлен в базу данных, которая подключена к серверу. Если данный header не установлен или установлен с неправильным значением, пользователь получит ошибку - Для запросов, которым требуется авторизация (то есть всем, кроме
/auth/loginи/auth/register), должен присутствовать headerAuthorization: Bearer <JWT_TOKEN>, значением которого является JWT-токен, полученный при авторизации