Sobes.tech
Middle

Kuidas kliendis tehtud muudatused jõuavad serverisse ja salvestatakse andmebaasi?

sobes.tech AI

Vastus AI-lt

Üldiselt saadetakse kasutaja tehtud muudatused veebirakenduses (kliendi poolel) serverile HTTP-päringuga.

HTTP-päringute tüübid:

  • POST: kasutatakse uue ressursi loomise või andmete saatmise jaoks töötlemiseks serveris. Sageli kasutatakse vormide andmete jaoks.
  • PUT: kasutatakse olemasoleva ressursi uuendamiseks. Edastatakse kogu ressursi olek.
  • PATCH: kasutatakse osalise ressursi uuendamiseks. Edastatakse ainult muudetud väljad.
  • DELETE: kasutatakse ressursi kustutamiseks.

Andmete voogude näide:

  1. Kasutaja sisestab andmed veebilehe vormi.
  2. Klient poolel kogub JavaScript need andmed (näiteks JSON-objektina).
  3. Toimub HTTP-päring (näiteks POST või PUT) serveri API kindlale endpointile. Andmed lisatakse päringu kehasse.
    // Andmete saatmise näide fetch API kasutades
    const data = { username: 'newuser', email: 'newuser@example.com' };
    
    fetch('/api/users', {
      method: 'POST', // või 'PUT', 'PATCH'
      headers: {
        'Content-Type': 'application/json',
        // muud päised, näiteks autoriseerimiseks
      },
      body: JSON.stringify(data), // JavaScript objekti teisendamine JSON-stringiks
    })
    .then(response => response.json()) // vastuse analüüs JSON-ks
    .then(data => {
      console.log('Edu:', data);
      // Eduka vastuse töötlemine
    })
    .catch((error) => {
      console.error('Viga:', error);
      // Vea töötlemine
    });
    
  4. Serverirakendus saab päringu, suunab selle vastavale töötlejale (kontrollerile).
  5. Kontroller võtab andmed päringu kehalt.
  6. Andmed valideeritakse ja sanitiseeritakse serveri poolel, et tagada turvalisus ja õigsus.
  7. Ärilogika töötleb saadud andmeid (näiteks kontrollib kasutajanime unikaalsust, teeb vajalikud arvutused).
  8. Kontroller suhtleb andmejuurdepääsukihiga (Data Access Layer - DAL) või ORM-iga (Object-Relational Mapper).
  9. DAL/ORM genereerib SQL-päringu või kasutab andmebaasi meetodeid andmete salvestamiseks, uuendamiseks või kustutamiseks vastavas tabelis(-ites).
    -- SQL INSERT näide
    INSERT INTO users (username, email) VALUES ('newuser', 'newuser@example.com');
    
    -- SQL UPDATE näide
    UPDATE users SET email = 'updated_email@example.com' WHERE username = 'newuser';
    
  10. Andmebaas täidab operatsiooni ja tagastab tulemuse (edu või viga).
  11. DAL/ORM edastab tulemuse kontrollerile.
  12. Kontroller koostab vastuse kliendile (näiteks JSON koos kinnitusega edust, HTTP staatusekoodiga 200 OK või veaga koos staatusekoodiga 400 Bad Request, 500 Internal Server Error jms.).
  13. Server saadab vastuse kliendile.
  14. JavaScript kliendipoolselt töötleb vastust (näiteks kuvab edukalt salvestamise teate, uuendab kasutajaliidest või näitab viga).

Kasutatavad tehnoloogiad sõltuvad konkreetsest tehnoloogiast:

  • Kliendi: HTML, CSS, JavaScript (React, Angular, Vue.js jms)
  • Server: Frameworks (Node.js/Express, Python/Django/Flask, Ruby/Rails, Java/Spring, PHP/Laravel jms)
  • Andmebaas: SQL (PostgreSQL, MySQL, SQL Server), NoSQL (MongoDB, Cassandra)

Kogu protsess peab olema turvaline (HTTPS, autentimine, autoriseerimine, valideerimine) ning suutma käsitleda võimalikke vigu igal etapil.