Sobes.tech
Middle

Kaip pakeitimai, atlikti kliento pusėje, perduodami į serverį ir saugomi duomenų bazėje?

sobes.tech AI

Atsakymas iš AI

Paprastai vartotojo atlikti pakeitimai interneto programėlėje (kliento pusėje) siunčiami į serverį per HTTP užklausą.

HTTP užklausų tipai:

  • POST: naudojamas naujo ištekliaus kūrimui arba duomenų siuntimui apdorojimui serveriu. Dažnai naudojamas formų duomenims.
  • PUT: naudojamas esamo ištekliaus atnaujinimui. Perduodama visa ištekliaus būsena.
  • PATCH: naudojamas daliniam ištekliaus atnaujinimui. Perduodami tik pakeisti laukai.
  • DELETE: naudojamas ištekliaus ištrynimui.

Duomenų srauto pavyzdys:

  1. Vartotojas įveda duomenis interneto puslapio formoje.
  2. Kliento pusėje JavaScript surenka šiuos duomenis (pavyzdžiui, JSON objektą).
  3. Vykdoma HTTP užklausa (pvz., POST arba PUT) į serverio API galinį tašką. Duomenys pridedami prie užklausos kūno.
    // Duomenų siuntimo į serverį pavyzdys naudojant fetch API
    const data = { username: 'newuser', email: 'newuser@example.com' };
    
    fetch('/api/users', {
      method: 'POST', // arba 'PUT', 'PATCH'
      headers: {
        'Content-Type': 'application/json',
        // kiti antraštės gali būti, pvz., autorizacijai
      },
      body: JSON.stringify(data), // JavaScript objekto konvertavimas į JSON eilutę
    })
    .then(response => response.json()) // atsakymo iš serverio analizė į JSON
    .then(data => {
      console.log('Sėkmė:', data);
      // Sėkmingo atsakymo apdorojimas
    })
    .catch((error) => {
      console.error('Klaida:', error);
      // Klaidos apdorojimas
    });
    
  4. Serverio programa gauna užklausą, nukreipia ją į atitinkamą apdorotoją (kontrolerį).
  5. Kontroleris ištraukia duomenis iš užklausos kūno.
  6. Duomenys patikrinami ir sanitarizuojami serverio pusėje, siekiant užtikrinti saugumą ir teisingumą.
  7. Verslo logika apdoroja gautus duomenis (pvz., tikrina vartotojo vardo unikalumą, atlieka reikalingus skaičiavimus).
  8. Kontroleris sąveikauja su duomenų prieigos sluoksniu (Data Access Layer - DAL) arba ORM (Object-Relational Mapper).
  9. DAL/ORM generuoja SQL užklausą arba naudoja duomenų bazės metodus duomenų išsaugojimui, atnaujinimui ar ištrynimui atitinkamoje lentelėje(-ėse).
    -- SQL INSERT pavyzdys
    INSERT INTO users (username, email) VALUES ('newuser', 'newuser@example.com');
    
    -- SQL UPDATE pavyzdys
    UPDATE users SET email = 'updated_email@example.com' WHERE username = 'newuser';
    
  10. Duomenų bazė vykdo operaciją ir grąžina rezultatą (sėkmę arba klaidą).
  11. DAL/ORM perduoda rezultatą kontroleriui.
  12. Kontroleris sukuria atsakymą klientui (pvz., JSON su patvirtinimu apie sėkmę, HTTP statuso kodu 200 OK arba klaida su statuso kodu 400 Bad Request, 500 Internal Server Error ir kt.).
  13. Serveris siunčia atsakymą klientui.
  14. JavaScript kliento pusėje apdorojamas atsakymas (pvz., rodomas sėkmingo išsaugojimo pranešimas, atnaujinama vartotojo sąsaja arba rodomas klaidos pranešimas).

Naudojamos technologijos priklauso nuo konkretaus technologijų rinkinio:

  • Klientas: HTML, CSS, JavaScript (React, Angular, Vue.js ir kt.)
  • Serveris: Frameworks (Node.js/Express, Python/Django/Flask, Ruby/Rails, Java/Spring, PHP/Laravel ir kt.)
  • Duomenų bazė: SQL (PostgreSQL, MySQL, SQL Server), NoSQL (MongoDB, Cassandra)

Visa procesas turi būti saugus (HTTPS, autentifikacija, autorizacija, validacija) ir turi apdoroti galimas klaidas kiekviename etape.