For english version of 'README.md' click here
Projekt ten jest efektem wykonania zadania, otrzymanego w procesie rekrutacji na stanowisko Backend Developera do toruńskiego Software House'u SPTech.
W dużym skrócie, zadanie polegało na stworzeniu HTTP API pozwalającego na przeprowadzenie rozgrywki w "statki", w języku Python, przy użyciu technologii Flask lub FastAPI oraz z zastosowaniem zasad i reguł REST. Dodatkowym atutem miało być użycie systemu relacyjnych baz danych SQL oraz biblioteki SQLAlchemy, do czego się zastosowałem.
- Python
- FastAPI
- SQLAlchemy
- Inne biblioteki języka Python wymienione w pliku
requirements.txt
- PostgreSQL
Do uruchamiania aplikacji w procesie tworzenia aplikacji, wykorzystano Uvicorn
.
-
Sklonuj to repozytorium:
git clone https://github.com/EnderASz/BattleshipAPI.git
-
Przejdź do ścieżki sklonowanego repozytorium (najczęściej poprzez polecenie
cd battleship_api
)
- Jeżeli chcesz użyć wirtualnego środowiska stwórz je oraz aktywuj przed następnymi czynnościami
-
Użyj polecenia
pip3 install -r requirements.txt
w celu pobrania i zainstalowania wymaganych paczek języka Python -
Przejdź do Konfiguracji i przygotuj ustawienia aplikacji poprzez zmienne środowiskowe (można również wykorzystać plik
.env
) lub plik konfiguracyjny znajdujący się pod ścieżką wskazaną przez zmienną środowiskowąbattleship_api_config_path
.
Cała poniższa konfiguracja, jest możliwa zarówno poprzez umieszczenie odpowiednich zmiennych w pliku konfiguracyjnym lub poprzez stworzenie odpowiadających im zmiennych środowiskowych (również poprzez plik .env
).
W przypadku użycia zmiennych środowiskowych, nazwa zmiennej powinna być poprzedzona przedrostkiem battleship_api_
. Naprzykład battleship_api_port
.
Nazwa zmiennej | Wartość domyślna | Opcjonalna | Opis |
---|---|---|---|
port | 80 |
✅ | Port z którego chcesz udostępnić dostęp do aplikacji |
host | 127.0.0.1 |
✅ | Adres hosta z którego aplikacja ma być uruchomiona |
debug | True |
✅ | Przełącznik decydujący czy aplikacja ma być uruchomiona w trybie debugowania |
db_url | sqlite:///./db.sqlite3 |
❌ | URL połączenia z bazą danych (SQLite lub PostgreSQL) |
db_check_same_thread | ➖ | Wymagany przy użyciu bazy danych SQLite. | W przypadku użycia bazy danych SQLite zalecane jest, aby wartość ta była ustawiona na False . Po więcej informacji przejdź tutaj. |
secret_key | Domyślnie używany jest predefiniowany klucz | ✅ | Sekretny klucz dla instancji aplikacji. Rekomendowane jest, aby wprowadzić własny oraz przechowywać go w sekrecie. |
W celu uruchomienia aplikacji wystarczy uruchomić plik runserver.py
za pomocą zainstalowanego środowiska Python.
python3 runserver.py