Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/radimsuckr/vse-graf-sem
https://github.com/radimsuckr/vse-graf-sem
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/radimsuckr/vse-graf-sem
- Owner: radimsuckr
- Created: 2024-06-10T20:49:27.000Z (7 months ago)
- Default Branch: master
- Last Pushed: 2024-06-13T20:19:54.000Z (7 months ago)
- Last Synced: 2024-06-14T23:13:28.515Z (7 months ago)
- Language: Python
- Size: 1.95 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# Neo4j Racing Teams API
Tato aplikace je webová služba vytvořená v Pythonu s využitím Flask frameworku. Slouží k interakci s databází Neo4j, která ukládá informace o závodních jezdcích, týmech a výsledcích závodů. Aplikace umožňuje provádět dotazy a manipulace s těmito daty prostřednictvím REST API.
PožadavkyPython 3.8 nebo novější
Neo4j 4.x nebo novější
Flask
Neo4j Python Driver## Data
Data jsou z Kaggle z datasetu [https://www.kaggle.com/datasets/debashish311601/formula-1-official-data-19502022](https://www.kaggle.com/datasets/debashish311601/formula-1-official-data-19502022).
## Instalace
Klonujte tento repozitář:
git clone https://github.com/radimsuckr/neo4j-racing-teams-api.git
cd neo4j-racing-teams-apiVytvořte a aktivujte virtuální prostředí:
python -m venv venv
source venv/bin/activate # Na Windows použijte `venv\Scripts\activate`Nainstalujte závislosti:
pip install -r requirements.txt
Nakonfigurujte připojení k databázi Neo4j v souboru app.py:
URI = "neo4j://localhost:7687"
AUTH = ("neo4j", "SuperPassw0rd!")## Použití
Spusťte aplikaci:
flask --app app run --reload
Případně jiným WSGI serverem.
Aplikace poběží na `http://localhost:5000`.
## REST API
1. Získání seznamu jezdců a týmů, pro které závodili
- Endpoint: `/`
- Metoda: `GET`
- Parametry URL: driver (volitelně), team (volitelně)
- Popis: Vrací seznam jezdců a týmů, pro které závodili. Možno filtrovat podle jména jezdce, týmu nebo obojího.2. Získání týmů, které mají nejvíce společných jezdců s daným týmem
- Endpoint: `/similar-teams/`
- Metoda: `GET`
- Popis: Vrací pět týmů, které mají nejvíce společných jezdců s daným týmem.3. Získání jezdců se stejným výsledkem v určitém závodě (Grand Prix)
- Endpoint: `/same-grand-prix-position//`
- Metoda: `GET`
- Popis: Vrací seznam jezdců, kteří dosáhli stejné pozice v zadaném závodě.4. Získání jezdců, kteří změnili tým více než zadaný početkrát
- Endpoint: `/drivers-who-changed-teams`
- Metoda: `GET`
- Parametry URL: threshold (volitelně, výchozí hodnota je 1)
- Popis: Vrací seznam jezdců, kteří změnili tým více než threshold krát.5. Vytvoření nového jezdce
- Endpoint: `/driver`
- Metoda: `POST`
- Tělo požadavku (JSON): `{ "name": "New Driver" }`
- Popis: Vytvoří nového jezdce v databázi Neo4j.6. Smazání jezdce podle jména
- Endpoint: `/driver`
- Metoda: `DELETE`
- Tělo požadavku (JSON): `{ "name": "New Driver" }`
- Popis: Smaže jezdce z databáze podle jeho jména.7. Získaní jezdce podle jména
- Endpoint: `/driver/`
- Metoda: `GET`
- Parametry URL: name (požadováno)
- Popis: Smaže jezdce z databáze podle jeho jména.8. Nejkratší cesta mezi dvěma jezdci
- Endpoint: `/common-path-between-drivers//`
- Metoda: `GET`
- Parametry URL: driver1 (požadováno), driver2 (požadováno)
- Popis: Vrátí nejkratší cestu skrz týmy a jezdce mezi dvěma zadanými jezdci