Caution
This project is deprecated in favor of https://github.com/one-zero-eight/sport
This is API for proxying requests in InnoSport website. It checks Accounts user token and make request to InnoSport API on behalf of the user.
- Python 3.12 & Poetry
- FastAPI
- Formatting and linting: Ruff, pre-commit
- Deployment: Docker, Docker Compose, GitHub Actions
- Install Python 3.12+, Install Poetry
- Install project dependencies with Poetry.
poetry install
- Start development server:
poetry run python -m src.api --reload
Follow provided instructions if needed
- Open in the browser: http://localhost:8000
The api will be reloaded when you edit the code
Important
For endpoints requiring authorization click "Authorize" button in Swagger UI
Tip
Edit settings.yaml according to your needs, you can view schema in
config_schema.py and in settings.schema.yaml
Set up PyCharm integrations
- Run configurations (docs).
Right-click the
__main__.pyfile in the project explorer, selectRun '__main__'from the context menu. - Ruff (plugin).
It will lint and format your code. Make sure to enable
Use ruff formatoption in plugin settings. - Pydantic (plugin). It will fix PyCharm issues with type-hinting.
- Conventional commits (plugin). It will help you to write conventional commits.
We use Docker with Docker Compose plugin to run the service on servers.
- Copy the file with environment variables:
cp .example.env .env - Change environment variables in the
.envfile - Copy the file with settings:
cp settings.example.yaml settings.yaml - Change settings in the
settings.yamlfile according to your needs (check settings.schema.yaml for more info) - Install Docker with Docker Compose
- Build a Docker image:
docker compose build --pull - Run the container:
docker compose up --detach - Check the logs:
docker compose logs -f
- Run
poetry updateto update all dependencies (it may update nothing, so double-check) - Run
poetry show --outdated --allto check for outdated dependencies - Run
poetry add <package>@latestto add a new dependency if needed
- Run
poetry run pre-commit autoupdate
Also, Dependabot will help you to keep your dependencies up-to-date, see dependabot.yml.