Sobes.tech
Middle

როგორ გადადის მომხმარებლის მიერ განხორციელებული ცვლილებები სერვერზე და ინახება მონაცემთა ბაზაში?

sobes.tech AI

პასუხი AI-სგან

ზოგადად, მომხმარებლის მიერ ვებ-აპლიკაციაში (კლაიენტზე) განხორციელებული ცვლილებები გადაეცემა სერვერზე HTTP-საკითხის საშუალებით.

HTTP-საკითხის ტიპები:

  • POST: გამოიყენება ახალი რესურსის შექმნის ან სერვერზე მონაცემების გადაცემისთვის დამუშავებისთვის. ხშირად გამოიყენება ფორმებიდან მონაცემებისთვის.
  • PUT: გამოიყენება არსებული რესურსის განახლებისთვის. გადაეცემა სრული მდგომარეობა რესურსის.
  • PATCH: გამოიყენება ნაწილობრივი განახლებისთვის. გადაეცემა მხოლოდ შეცვლილი ველები.
  • DELETE: გამოიყენება რესურსის წაშლისთვის.

მონაცემთა ნაკადის მაგალითი:

  1. მომხმარებელი вводит მონაცემებს ვებ-გვერდის ფორმაში.
  2. JavaScript კლაიენტზე აგროვებს ამ მონაცემებს (მაგალითად, JSON ობიექტში).
  3. ხორციელდება HTTP-საკითხი (მაგალითად, POST ან PUT) სერვერის API-ის კონკრეტულ ენდპოინტზე. მონაცემები მიერთებულია სითხეში.
    // მონაცემების გაგზავნის მაგალითი fetch API-ს გამოყენებით
    const data = { username: 'newuser', email: 'newuser@example.com' };
    
    fetch('/api/users', {
      method: 'POST', // ან 'PUT', 'PATCH'
      headers: {
        'Content-Type': 'application/json',
        // სხვა სათაურებიც შეიძლება იყოს, მაგალითად ავტორიზაციისთვის
      },
      body: JSON.stringify(data), // JavaScript ობიექტის გარდაქმნა JSON სტრიქონად
    })
    .then(response => response.json()) // პასუხის პარსვა JSON-ში
    .then(data => {
      console.log('Success:', data);
      // წარმატებული პასუხის დამუშავება
    })
    .catch((error) => {
      console.error('Error:', error);
      // შეცდომის დამუშავება
    });
    
  4. სერვერული აპლიკაცია იღებს მოთხოვნას, გზავნის მას შესაბამის დამუშავებამდე (კონტროლერამდე).
  5. კონტროლერი ამოიღებს მონაცემებს მოთხოვნის სხეულიდან.
  6. მონაცემები გადის ვალიდაციას და სანტიარიზაციას სერვერზე უსაფრთხოებისა და სისწორის უზრუნველსაყოფად.
  7. ბიზნეს-ლოგიკა ამუშავებს მიღებულ მონაცემებს (მაგალითად, მომხმარებლის სახელის უნიკალურობის შემოწმება, საჭირო გამოთვლების განხორციელება).
  8. კონტროლერი ურთიერთქმედებს მონაცემთა წვდომის დონესთან (Data Access Layer - DAL) ან ORM-თან (Object-Relational Mapper).
  9. DAL/ORM ქმნის SQL-საკითხს ან იყენებს ბაზის მეთოდებს მონაცემების შენახვის, განახლების ან წაშლისთვის შესაბამის ტაბლეტში(ებ).
    -- SQL-ის მაგალითი INSERT
    INSERT INTO users (username, email) VALUES ('newuser', 'newuser@example.com');
    
    -- SQL-ის მაგალითი UPDATE
    UPDATE users SET email = 'updated_email@example.com' WHERE username = 'newuser';
    
  10. მონაცემთა ბაზა ახორციელებს ოპერაციას და აბრუნებს შედეგს (წარმატება ან შეცდომა).
  11. DAL/ORM გადმოსცემს შედეგს კონტროლერს.
  12. კონტროლერი ქმნის პასუხს მომხმარებლისთვის (მაგალითად, JSON დადასტურებით, HTTP სტატუს-კოდით 200 OK ან შეცდომით სტატუს-კოდით 400 Bad Request, 500 Internal Server Error და ა.შ.).
  13. სერვერი აგზავნის პასუხს მომხმარებლისთვის.
  14. JavaScript კლაიენტზე დამუშავდება პასუხი (მაგალითად, წარმატების შეტყობინების ჩვენება, UI განახლება ან შეცდომის ჩვენება).

გამოყენებული ტექნოლოგიები დამოკიდებულია კონკრეტულ სტეკზე:

  • კლაიენტი: HTML, CSS, JavaScript (React, Angular, Vue.js და ა.შ.)
  • სერვერი: Frameworks (Node.js/Express, Python/Django/Flask, Ruby/Rails, Java/Spring, PHP/Laravel და ა.შ.)
  • მონაცემთა ბაზა: SQL (PostgreSQL, MySQL, SQL Server), NoSQL (MongoDB, Cassandra)

მთლიანი პროცესი უნდა იყოს უსაფრთხო (HTTPS, ავტორიზაცია, სერთიფიკატი, ვალიდაცია) და უნდა უყუროს შესაძლო შეცდომებს თითოეულ ეტაპზე.