-
Notifications
You must be signed in to change notification settings - Fork 0
Koululentovaraus API
Kimmo Muli edited this page Apr 25, 2023
·
13 revisions
Seuraavat päätepisteet ovat saatavilla varausikkunoiden kanssa työskentelyyn:
❗ :airfieldCode
yksilöi rajapintakutsut tiettyyn lentokenttään ❗
- Menetelmä: GET
- Päätepiste:
/api/:airfieldCode/timeslots
- Kuvaus: Hakee kaikki varausikkunat annetulla aikavälillä.
- URL-parametrit:
- from: aloituspäivämäärä (ISO 8601 -muodossa)
- until: lopetuspäivämäärä (ISO 8601 -muodossa)
- Tila: 200
- Sisältötyyppi: application/json
- Vastauksen sisältö: Lista varausikkuna-objekteja.
GET /api/EFHK/timeslots?from=2023-05-01T00:00:00Z&until=2023-05-01T23:59:59Z
[
{
"id": 1,
"start": "2023-05-01T08:00:00Z",
"end": "2023-05-01T08:30:00Z",
"type": "available",
"group": null,
"info": null,
"airfieldCode": "EFHK"
},
{
"id": 2,
"start": "2023-05-01T09:30:00Z",
"end": "2023-05-01T10:00:00Z",
"type": "available",
"group": null,
"info": null,
"airfieldCode": "EFHK"
}
]
- Menetelmä: DELETE
- Päätepiste:
/api/:airfieldCode/timeslots/:id
- Kuvaus: Poistaa varausikkunan annetulla ID:llä.
- URL-parametrit:
- id: Varausikkunan yksilöllinen id/koodi.
- Tila: 200
- Sisältötyyppi: text/plain
- Vastauksen sisältö: Viesti varausikkunan poistosta.
DELETE /api/EFHK/timeslots/1
`Timeslot 1 deleted`
- Menetelmä: POST
- Päätepiste:
/api/:airfieldCode/timeslots
- Kuvaus: Luo uuden varausikkunan.
- Lähetettävä data: JSON-objekti, joka sisältää uuden varausikkunan tiedot.
- Tila: 200
- Sisältötyyppi: application/json
- Vastauksen sisältö: Uusi varausikkunaobjekti.
POST /api/EFHK/timeslots
{
"start": "2023-05-01T09:30:00Z",
"end": "2023-05-01T10:00:00Z",
"type": "available",
"group": null,
"info": null,
"airfieldCode": "EFHK"
}
{
"id": 3,
"start": "2023-05-01T09:30:00Z",
"end": "2023-05-01T10:00:00Z",
"type": "available",
"group": null,
"info": null,
"airfieldCode": "EFHK"
}
- Menetelmä: PUT
- Päätepiste:
/api/:airfieldCode/timeslots/:id
- Kuvaus: Päivittää varausikkunan annetulla ID:llä. Mahdollisuus myös muokata varausikkunasta toistuva.
- Lähetettävä data: JSON-objekti, joka sisältää päivitetyt varausikkunan tiedot.
- Tila: 200
- Sisältötyyppi: application/json
- Vastauksen sisältö: Päivitetty varausikkunaobjekti.
PUT /api/EFHK/timeslots/3
{
"start": "2023-05-01T10:00:00Z",
"end": "2023-05-01T10:30:00Z",
"type": "unavailable",
"group": null,
"info": "Huoltotyöt",
"airfieldCode": "EFHK"
}
{
"id": 3,
"start": "2023-05-01T10:00:00Z",
"end": "2023-05-01T10:30:00Z",
"type": "unavailable",
"group": null,
"info": "Huoltotyöt",
"airfieldCode": "EFHK"
}
PUT /api/EFHK/timeslots/4
{
"start": "2023-05-01T12:00:00Z",
"end": "2023-05-01T14:00:00Z",
"type": "unavailable",
"group": null,
"info": "Säännölliset huoltotyöt",
"airfieldCode": "EFHK",
"periodEnd": "2023-05-31T23:59:59Z",
"days": {
"monday": true,
"tuesday": true,
"wednesday": true,
"thursday": true,
"friday": true,
"saturday": false,
"sunday": false
}
}
[
{
"id": 4,
"start": "2023-05-01T12:00:00Z",
"end": "2023-05-01T14:00:00Z",
"type": "unavailable",
"group": "group-1649000000000",
"info": "Säännölliset huoltotyöt",
"airfieldCode": "EFHK"
},
{
"id": 5,
"start": "2023-05-02T12:00:00Z",
"end": "2023-05-02T14:00:00Z",
"type": "unavailable",
"group": "group-1649000000000",
"info": "Säännölliset huoltotyöt",
"airfieldCode": "EFHK"
},
{
"id": 6,
"start": "2023-05-03T12:00:00Z",
"end": "2023-05-03T14:00:00Z",
"type": "unavailable",
"group": "group-1649000000000",
"info": "Säännölliset huoltotyöt",
"airfieldCode": "EFHK"
},
...
]
- Menetelmä: PUT
- Päätepiste: /api/timeslots/group/:group
- Kuvaus: Päivittää kaikki varausikkunat, jotka kuuluvat annettuun ryhmään.
- Lähetettävä data: JSON-objekti, joka sisältää päivitetyt varausikkunan tiedot.
- Tila: 200
- Sisältötyyppi: application/json
- Vastauksen sisältö: Lista päivitettyjä varausikkunaobjekti.
PUT /api/timeslots/group/group-2023-05-01T23:59:59Z
{
"startingFrom": "2023-05-01T00:00:00Z",
"startTimeOfDay": {
"hours": 9,
"minutes": 0
},
"endTimeOfDay": {
"hours": 17,
"minutes": 0
}
}
[
{
"id": 1,
"start": "2023-05-01T09:00:00Z",
"end": "2023-05-01T17:00:00Z",
"type": "available",
"group": "group-2023-05-01T23:59:59Z",
"info": null
},
{
"id": 2,
"start": "2023-05-02T09:00:00Z",
"end": "2023-05-02T17:00:00Z",
"type": "available",
"group": "group-2023-05-01T23:59:59Z",
"info": null
}
]
❗ :airfieldCode
yksilöi rajapintakutsut tiettyyn lentokenttään ❗
Seuraavat päätepisteet ovat saatavilla varauksiin liittyen:
- Menetelmä: GET
- Päätepiste:
/api/:airfieldCode/reservations
- URL-parametrit:
- from: aloitusaika (ISO 8601 muodossa)
- until: lopetusaika (ISO 8601 muodossa)
- Kuvaus: Hakee varaukset annetulta aikaväliltä.
- Tila: 200
- Sisältötyyppi: application/json
- Vastauksen sisältö: Lista varausobjekteja.
GET /api/reservations?from=2023-05-01T00:00:00.000Z&until=2023-05-31T23:59:59.000Z
[
{
"id": 1,
"airfieldCode": "EFTU",
"start": "2023-05-03T10:00:00.000Z",
"end": "2023-05-03T12:00:00.000Z"
},
{
"id": 2,
"airfieldCode": "EFTU",
"start": "2023-05-10T14:00:00.000Z",
"end": "2023-05-10T16:00:00.000Z"
}
]
- Menetelmä: DELETE
- Päätepiste:
/api/:airfieldCode/reservations/:id
- Kuvaus: Poistaa varauksen annetulla ID:llä.
- URL-parametrit:
- id: varauksen yksilöivä koodi/id
- Tila: 200
- Sisältötyyppi: text/plain
- Vastauksen sisältö: Ilmoitus varauksen poistamisesta.
DELETE /api/reservations/1
Reservation 1 deleted
- Menetelmä: POST
- Päätepiste:
/api/:airfieldCode/reservations
- Kuvaus: Luo uuden varauksen. Aikavälillä täytyy olla vapaa varausikkuna.
- Lähetettävä data: JSON-objekti, joka sisältää uuden varauksen tiedot.
- Tila: 200
- Sisältötyyppi: application/json
- Vastauksen sisältö: Luotu varausobjekti.
Esimerkki olettaa, että aikavälillä on vapaa varausikkuna.
POST /api/reservations
{
"airfieldCode": "EFTU",
"start": "2023-05-15T08:00:00.000Z",
"end": "2023-05-15T10:00:00.000Z"
}
{
"id": 3,
"airfieldCode": "EFTU",
"start": "2023-05-15T08:00:00.000Z",
"end": "2023-05-15T10:00:00.000Z"
}
- Menetelmä: PUT
- Päätepiste:
/api/:airfieldCode/reservations/:id
- Kuvaus: Päivittää varauksen tietyn tunnuksen perusteella.
- Lähetettävä data: JSON-objekti, joka sisältää päivitetyt varaustiedot.
- URL-parametrit:
- id: varauksen yksilöivä koodi/id
- Tila: 200
- Sisältötyyppi: application/json
- Vastauksen sisältö: Päivitetty varausobjekti.
PUT /api/reservations/123
{
"start": "2023-05-01T10:00:00.000Z",
"end": "2023-05-01T12:00:00.000Z",
"plane": "OH-LPL",
"pilot": "John Doe"
}
{
"id": 123,
"start": "2023-05-01T10:00:00.000Z",
"end": "2023-05-01T12:00:00.000Z",
"plane": "OH-LPL",
"pilot": "John Doe"
}
Seuraavat päätepisteet ovat saatavilla lentokenttätietojen kanssa työskentelyyn:
- Menetelmä: GET
- Päätepiste:
/api/airfields
- Kuvaus: Hakee kaikki saatavilla olevat lentokentät.
- Tila: 200
- Sisältötyyppi: application/json
- Vastauksen sisältö: Lentokenttäobjektien taulukko.
GET /api/airfields
[
{
"code": "EFHK",
"name": "Helsinki-Vantaan lentoasema",
"maxConcurrentFlights": 3,
"eventGranularityMinutes": 20
},
{
"code": "EFTU",
"name": "Turun lentoasema",
"maxConcurrentFlights": 2,
"eventGranularityMinutes": 15
}
]
- Menetelmä: GET
- Päätepiste:
/api/airfields/:code
- Kuvaus: Hakee tietyn lentokentän sen koodin perusteella.
- URL-parametrit:
- code: Lentokentän yksilöllinen koodi.
- Tila: 200
- Sisältötyyppi: application/json
- Vastauksen sisältö: Lentokenttäobjekti.
GET /api/airfields/EFHK
{
"code": "EFHK",
"name": "Helsinki-Vantaan lentoasema",
"maxConcurrentFlights": 3,
"eventGranularityMinutes": 20
}
- Menetelmä: PUT
- Päätepiste:
/api/airfields/:code
- Kuvaus: Päivittää tietyn lentokentän sen koodin perusteella.
- URL-parametrit:
- code: Lentokentän yksilöllinen koodi.
- Lähetettävä data: JSON-objekti, joka sisältää päivitetyt lentokentän tiedot, lukuun ottamatta lentokentän koodia.
- Tila: 200
- Sisältötyyppi: application/json
- Vastauksen sisältö: Päivitetty lentokenttäobjekti.
PUT /api/airfields/EFHK
{
"name": "Helsinki-Vantaan lentoasema",
"maxConcurrentFlights": 4,
"eventGranularityMinutes": 25
}
{
"code": "EFHK",
"name": "Helsinki-Vantaan lentoasema",
"maxConcurrentFlights": 4,
"eventGranularityMinutes": 25
}
- Menetelmä: POST
- Päätepiste:
/api/airfields
- Kuvaus: Luo uuden lentokentän.
- Lähetettävä data: JSON-objekti, joka sisältää uuden lentokentän tiedot, mukaan lukien lentokentän koodi.
- Tila: 200
- Sisältötyyppi: application/json
- Vastauksen sisältö: Luotu lentokenttäobjekti.
POST /api/airfields
{
"code": "EFJY",
"name": "Jyväskylän lentoasema",
"maxConcurrentFlights": 2,
"eventGranularityMinutes": 30
}
{
"code": "EFJY",
"name": "Jyväskylän lentoasema",
"maxConcurrentFlights": 2,
"eventGranularityMinutes": 30
}
Seuraavat päätepisteet ovat saatavilla konfiguraatioiden kanssa työskentelyyn:
- Menetelmä: GET
- Päätepiste:
Päätepiste: /api/configurations/1
- Kuvaus: Hakee konfiguraation.
Vastaus
- Tila: 200
- Sisältötyyppi: application/json
- Vastauksen sisältö: Konfiguraatio-objekti.
GET /api/configurations/1
{
"id": 1,
"daysToStart": 3,
"maxDaysInFuture": 30
}
- Menetelmä: PUT
- Päätepiste:
/api/configurations/1
- Kuvaus: Päivittää konfiguraation.
- Lähetettävä data: JSON-objekti, joka sisältää päivitetyt konfiguraatiotiedot, lukuun ottamatta konfiguraation ID:tä.
Vastaus
- Tila: 200
- Sisältötyyppi: application/json
- Vastauksen sisältö: Päivitetty konfiguraatio-objekti.
PUT /api/configurations/1
{
"daysToStart": 5,
"maxDaysInFuture": 45
}
{
"id": 1,
"daysToStart": 5,
"maxDaysInFuture": 45
}
Virhetilanteessa API palauttaa vastauksen, jossa on sopiva HTTP-tilakoodi ja JSON-objekti.