Sobes.tech
Middle

Kā klienta veiktās izmaiņas tiek nosūtītas uz serveri un saglabātas datu bāzē?

sobes.tech AI

Atbilde no AI

Parasti lietotāja veiktās izmaiņas tīmekļa lietojumprogrammā (klienta pusē) tiek nosūtītas uz serveri, izmantojot HTTP pieprasījumu.

HTTP pieprasījumu veidi:

  • POST: tiek izmantots jauna resursa izveidei vai datu nosūtīšanai apstrādei serverī. Bieži tiek izmantots formu datiem.
  • PUT: tiek izmantots esoša resursa atjaunināšanai. Tiek nodots pilnīgs resursa stāvoklis.
  • PATCH: tiek izmantots daļējai resursa atjaunināšanai. Tiek nodoti tikai mainītie lauki.
  • DELETE: tiek izmantots resursa dzēšanai.

Datu plūsmas piemērs:

  1. Lietotājs ievada datus tīmekļa lapas formā.
  2. Klienta pusē JavaScript savāc šos datus (piemēram, JSON objektā).
  3. Notiek HTTP pieprasījums (piemēram, POST vai PUT) uz servera API galapunktu. Dati tiek pievienoti pie pieprasījuma ķermeņa.
    // Datu nosūtīšanas piemērs, izmantojot fetch API
    const data = { username: 'newuser', email: 'newuser@example.com' };
    
    fetch('/api/users', {
      method: 'POST', // vai 'PUT', 'PATCH'
      headers: {
        'Content-Type': 'application/json',
        // citi galveni, piemēram, autorizācijai
      },
      body: JSON.stringify(data), // JavaScript objekta pārvēršana JSON virknes formātā
    })
    .then(response => response.json()) // atbildes parsēšana uz JSON
    .then(data => {
      console.log('Veiksme:', data);
      // Veiksmīgas atbildes apstrāde
    })
    .catch((error) => {
      console.error('Kļūda:', error);
      // Kļūdas apstrāde
    });
    
  4. Servera lietojumprogramma saņem pieprasījumu, novirza to uz atbilstošo apstrādātāju (kontrolieri).
  5. Kontrolieris iegūst datus no pieprasījuma ķermeņa.
  6. Dati tiek validēti un sanitizēti servera pusē, lai nodrošinātu drošību un pareizību.
  7. Biznesa loģika apstrādā saņemtos datus (piemēram, pārbauda lietotājvārda unikālitāti, veic nepieciešamos aprēķinus).
  8. Kontrolieris sadarbojas ar datu piekļuves slāni (Data Access Layer - DAL) vai ORM (Object-Relational Mapper).
  9. DAL/ORM ģenerē SQL pieprasījumu vai izmanto datu bāzes metodes datu saglabāšanai, atjaunināšanai vai dzēšanai atbilstošajā tabulā(-ās).
    -- SQL INSERT piemērs
    INSERT INTO users (username, email) VALUES ('newuser', 'newuser@example.com');
    
    -- SQL UPDATE piemērs
    UPDATE users SET email = 'updated_email@example.com' WHERE username = 'newuser';
    
  10. Datu bāze veic operāciju un atgriež rezultātu (veiksmi vai kļūdu).
  11. DAL/ORM nodod rezultātu kontrolierim.
  12. Kontrolieris ģenerē atbildi klientam (piemēram, JSON ar apstiprinājumu par veiksmīgu, HTTP statusa kodu 200 OK vai kļūdu ar statusa kodu 400 Bad Request, 500 Internal Server Error utt.).
  13. Serveris nosūta atbildi klientam.
  14. JavaScript klients apstrādā atbildi (piemēram, parāda veiksmīgas saglabāšanas ziņojumu, atjauno lietotāja saskarni vai parāda kļūdas ziņojumu).

Izmantotās tehnoloģijas ir atkarīgas no konkrētā tehnoloģiju komplekta:

  • Klients: HTML, CSS, JavaScript (React, Angular, Vue.js utt.)
  • Serveris: Frameworks (Node.js/Express, Python/Django/Flask, Ruby/Rails, Java/Spring, PHP/Laravel utt.)
  • Datu bāze: SQL (PostgreSQL, MySQL, SQL Server), NoSQL (MongoDB, Cassandra)

Visa process ir jābūt drošam (HTTPS, autentifikācija, autorizācija, validācija) un jāspēj apstrādāt iespējamās kļūdas katrā posmā.