Skip to content

henrihal/Project5

Repository files navigation

Project 5 - REST API Formula 1 edition

Projekti on tehty Tietotekniikan laboratoriokurssia varten. Projektin ideana on luoda yksinkertainen REST API, joka toteuttaa CRUD toiminnallisuuksia. Projektissa piti myös olla tietokanta, jossa on vähintään kaksi toisiinsa 1:N suhteella liittyvää taulua.

Yleiskatsaus

Tein projektin siten, että ensin alustan tietokannan OpenF1 nimisestä APIa käyttämällä. Tietokanta saa API:sta kisat, ajajat ja tulokset. Käyttäjä voi tämän jälkeen itse lisätä uusia kisoja, muokata kisoja, poistaa kisoja tai muokata ajajien tietoja. Projektissa myönnettävästi keskityin liikaa CRUD:in Read toimintoon ja datan muotoiluun / hakemiseen, joten muut toiminnallisuudet ovat projektin edetessä lisättyjä.

Teknologiat

  • Suoritusympäristö: Node.js ja TypeScript
  • Sovelluskehys: Express 5
  • Tietokanta: SQLite (Prisma ORM:n kautta better-sqlite3-adapterilla)
  • Tietolähde: OpenF1 API

Projektin rakenne

src/
  app.ts          # Express-sovellus ja API-reittien määrittelyt
scripts/
  fetchDrivers.ts # Hakee ja tallentaa ajajatiedot
  fetchRaces.ts   # Hakee ja tallentaa kisatiedot
  fetchResults.ts # Hakee ja tallentaa kisatulokset
prisma/
  schema.prisma   # Tietokantakaavio (Driver, Race, Result -mallit)

Aloittaminen

Vaatimukset

  • Node.js
  • npm

Asennus

npm install

Ympäristömuuttujat

Luo .env-tiedosto projektin juurihakemistoon:

DATABASE_URL=file:./dev.db
PORT=3001 # Tai haluamasi portti

Tietokannan alustus

npx prisma migrate dev

Tietojen haku ja tallennus

Hae ja tallenna kaikki tiedot ulkoisesta API:sta:

npm run sync

Tai aja yksittäiset hakuskriptit (ei suositella ensimmäisellä kerralla):

npm run fetch-races
npm run fetch-drivers
npm run fetch-results

Kehityspalvelimen käynnistys

npm run dev

API on käytettävissä osoitteessa http://localhost:3001 tai valitsemassasi portissa.

API-dokumentaatio

Ajajat

Metodi Reitti Kuvaus
GET /api/drivers Listaa kaikki ajajat. Voidaan suodattaa parametrilla ?year=
GET /api/drivers/:id Hae ajaja tunnuksella, sisältää kisatulokset
PUT /api/drivers/:id Päivitä ajajan tiedot

Kisat

Metodi Reitti Kuvaus
GET /api/races Listaa kaikki kisat. Voidaan suodattaa parametrilla ?year=
GET /api/races/:id Hae kisa tunnuksella, sisältää tulokset ja ajajatiedot
POST /api/races Luo uusi kisa
PUT /api/races/:id Päivitä kisan tiedot
DELETE /api/races/:id Poista kisa ja sen tulokset

Lisenssi

ISC

About

Project for the project number 5 for a lab class

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors