Kihagyás

Backend feladatok

Könyvtár rendszer

Nehézség: ⭐⭐⭐⭐

1. Adatbázis séma létrehozása

  • Hozz létre egy adatbázisfájlt library.db néven.
  • Használj SQLite-t az adatbázis létrehozásához és a Book tábla definíciójához az alábbi oszlopokkal: id INTEGER PRIMARY KEY, title TEXT, author TEXT, publication_year INTEGER, available INTEGER (0 vagy 1 értékkel, ahol 0 = nem elérhető, 1 = elérhető).

2. Végpontok

2.1. Könyvek lekérdezése

Lekérdezi az összes könyvet az adatbázisból.

Metódus URL Body Válasz
GET /books üres JSON

2.2. Könyv lekérdezése

Lekérdezi egy könyv címét és szerzőjét az adatbázisból az azonosító alapján. Ha nem található a könyv, akkor egy 404-es hibakódot küld vissza.

Metódus URL Body Válasz
GET /books/<id> üres JSON

Fontos

Ügyelj rá, hogy a válaszban ne JSON tömböt küldj vissza, hanem egyetlen JSON objektumot, amely tartalmazza a könyv adatait!

2.3. Új könyv hozzáadása

Új könyv hozzáadása az adatbázishoz. Az adatokat a kérés törzsén keresztül kell elküldeni JSON formátumban.

Metódus URL Body Válasz
POST /books JSON JSON

2.4. Könyv frissítése

Egy meglévő könyv adatainak frissítése az adatbázisban. Támogassa a cím, szerző, kiadási év, elérhetőség frissítését. Az adatokat a kérés törzsén keresztül kell elküldeni JSON formátumban. Ha nem található a könyv, akkor egy 404-es hibakódot küld vissza.

Metódus URL Body Válasz
PUT /books/<id> JSON JSON

2.5. Könyv törlése

Egy meglévő könyv törlése az adatbázisból. Ha nem található a könyv, akkor egy 404-es hibakódot küld vissza.

Metódus URL Body Válasz
DELETE /books/<id> nincs JSON

3. Tesztelés

Készíts Postman kollekciót, amely teszteli az összes elérhető végpontot, hogy könnyen tesztelhető legyen az alkalmazás. Az elkészített kollekciótexportált ki, a fájlnév legyen Library.postman_collection.json.

Virágbolt

Nehézség: ⭐⭐⭐⭐⭐

A feladat több tábla összekapcsolását és összetett lekérdezéseket igényel.

1. Adatbázis létrehozása

Hozz létre egy adatbázisfájlt viragbolt.db néven.

erDiagram
    KATEGORIAK {
        int id PK "Egyedi azonosító"
        string nev "Kategória neve"
    }

    ARUK {
        int id PK "Egyedi azonosító"
        string nev "Termék neve"
        string leiras "Termék leírása"
        int keszlet "Készlet mennyisége"
        int ar "Termék ára"
        string kepUrl "Termék képének URL címe"
        int kategoriaId FK "Kategória azonosítója"
    }

    KATEGORIAK ||--o{ ARUK : tartozik

Az adatbázis tartalmát az alábbi script segítségével hozhatod létre:

CREATE TABLE IF NOT EXISTS kategoriak (
    id INTEGER PRIMARY KEY,
    nev TEXT NOT NULL
);

CREATE TABLE IF NOT EXISTS aruk (
    id INTEGER PRIMARY KEY,
    nev TEXT NOT NULL,
    kategoriaId INTEGER,
    leiras TEXT,
    keszlet INTEGER,
    ar INTEGER,
    kepUrl TEXT,
    FOREIGN KEY(kategoriaId) REFERENCES kategoriak(id)
);

2. Virágok lekérdezése

  • Lekérdezi az összes virágot az adatbázisból.
  • A válasz tartalmazza a virág kategóriáját és annak információt is.
Metódus URL Body Válasz
GET /flowers üres JSON
Lehetséges válasz üzenet (200 OK státuszkóddal)
[
    {
        "id": 1,
        "nev": "Rózsa",
        "kategoria": {
            "id": 1,
            "nev": "Virágok"
        },
        "leiras": "A rózsa a rózsafélék (Rosaceae) családjába tartozó növények közös neve. A rózsafélék családjába mintegy 100-150 faj tartozik, melyek a mérsékelt égövön őshonosak.",
        "keszlet": 10,
        "ar": 1000,
        "kepUrl": "https://example.com/roza.jpg"
    },
    {
        "id": 2,
        "nev": "Tulipán",
        "kategoria": {
            "id": 1,
            "nev": "Virágok"
        },
        "leiras": "A tulipán (Tulipa) a liliomfélék (Liliaceae) családjába tartozó növények nemzetsége. A tulipánok a törökországi Szökevény-hegységben őshonosak.",
        "keszlet": 20,
        "ar": 800,
        "kepUrl": "https://example.com/tulipan.jpg"
    }
]

3. Virág lekérdezése

  • Lekérdezi egy virág nevét és leírását az adatbázisból az azonosító alapján.
  • A válasz tartalmazza a virág kategóriáját és annak információt is.
  • Ha nem található a virág, akkor egy 404-es hibakódot küld vissza.
Metódus URL Body Válasz
GET /flowers/<id> üres JSON
Lehetséges válasz üzenet (200 OK státuszkóddal)
{
    "id": 1,
    "nev": "Rózsa",
    "kategoria": {
        "id": 1,
        "nev": "Virágok"
    },
    "leiras": "A rózsa a rózsafélék (Rosaceae) családjába tartozó növények közös neve. A rózsafélék családjába mintegy 100-150 faj tartozik, melyek a mérsékelt égövön őshonosak.",
    "keszlet": 10,
    "ar": 1000,
    "kepUrl": "https://example.com/roza.jpg"
}
Lehetséges válasz üzenet (404 NOT FOUND státuszkóddal)
1
2
3
{
    "error": "A virág nem található!"
}

4. Új virág hozzáadása

  • Új virág hozzáadása az adatbázishoz.
  • Az adatokat a kérés törzsén keresztül kell elküldeni JSON formátumban.
  • Sikeres hozzáadás esetén a válaszkód 201 CREATED legyen.
Metódus URL Body Válasz
POST /flowers JSON JSON

5. Virág frissítése

  • Egy meglévő virág adatainak frissítése az adatbázisban.
  • Támogassa a név, leírás, készlet, ár frissítését.
  • Az adatokat a kérés törzsén keresztül kell elküldeni JSON formátumban.
  • Ha nem található a virág, akkor egy 404-es hibakódot küld vissza.
Metódus URL Body Válasz
PUT /flowers/<id> JSON JSON
Példa a kérés törzsében elküldött JSON tartalmára
1
2
3
4
5
6
{
    "nev": "Vörös rózsa",
    "leiras": "A vörös rózsa a rózsafélék (Rosaceae) családjába tartozó növények közös neve.",
    "ar": 1200,
    "keszlet": 5
}
Lehetséges válasz üzenet (404 NOT FOUND státuszkóddal)
1
2
3
{
    "error": "A virág nem található!"
}

6. Virág törlése

  • Egy meglévő virág törlése az adatbázisból.
  • Ha nem található a virág, akkor egy 404-es hibakódot küld vissza.
Metódus URL Body Válasz
DELETE /flowers/<id> nincs JSON
Lehetséges válasz üzenet (404 NOT FOUND státuszkóddal)
1
2
3
{
    "error": "A virág nem található!"
}

7. Kategóriák lekérdezése

  • Lekérdezi az összes kategóriát az adatbázisból.
Metódus URL Body Válasz
GET /categories üres JSON
Lehetséges válasz üzenet (200 OK státuszkóddal)
[
    {
        "id": 1,
        "nev": "Szobanövények"
    },
    {
        "id": 2,
        "nev": "Szabadtéri növények"
    }
]

8. Tesztelés

  • Készíts Postman kollekciót, amely teszteli az összes elérhető végpontot, hogy könnyen tesztelhető legyen az alkalmazás.
  • Az elkészített kollekciótexportált ki, a fájlnév legyen Viragbolt.postman_collection.json.