1. Обработка HTTP-запроса на сервере

 

Рассмотрим пример серверного приложения, которое возвращает информацию о студенте.

 

Для демонстрации используется ASP.NET Core Minimal API на языке C#.

 

C#-код (Program.cs):

 

var builder = WebApplication.CreateBuilder(args);

var app = builder.Build();

 

app.MapGet("/api/students/1", () =>

{

    var student = new

    {

        Id = 1,

        Name = "Алия",

        Group = "IT-101"

    };

 

    return Results.Ok(student);

});

 

app.Run();

 

HTTP-запрос:

 

GET /api/students/1

 

Пример JSON-ответа:

 

{

    "id": 1,

    "name": "Алия",

    "group": "IT-101"

}

 

Объяснение:

 

WebApplication.CreateBuilder() — создаёт конфигурацию приложения.

MapGet() — регистрирует обработчик HTTP GET-запроса.

"/api/students/1" — маршрут для получения информации о студенте.

Results.Ok() — возвращает успешный HTTP-ответ со статусом 200.

app.Run() — запускает серверное приложение.

 

Результат:

 

При обращении к адресу /api/students/1 сервер возвращает информацию о студенте в формате JSON.

 

В данном примере данные заданы непосредственно в коде, без базы данных.

 

 

2. Получение данных из базы данных с помощью SQL

 

Рассмотрим пример хранения и получения информации об учебных курсах.

 

SQL-код:

 

CREATE TABLE Courses (

    Id INT PRIMARY KEY,

    Name VARCHAR(100) NOT NULL,

    Credits INT NOT NULL

);

 

INSERT INTO Courses (Id, Name, Credits)

VALUES

(1, 'WEB Technologies', 5),

(2, 'Databases', 4),

(3, 'Programming', 6);

 

SELECT Name, Credits

FROM Courses

WHERE Credits >= 5;

 

Объяснение:

 

CREATE TABLE — создаёт таблицу базы данных.

PRIMARY KEY — определяет уникальный идентификатор записи.

NOT NULL — запрещает отсутствие значения в поле.

INSERT INTO — добавляет записи в таблицу.

SELECT — выбирает данные.

WHERE — задаёт условие отбора.

 

Результат:

 

Name               Credits

WEB Technologies   5

Programming        6

 

Запрос возвращает только курсы, количество кредитов которых не меньше пяти.

 

В серверном приложении такие данные могут предоставляться клиенту через API. ORM позволяет работать с таблицами через программные объекты.

 

 

3. Использование транзакции для сохранения данных

 

Рассмотрим пример перевода денежных средств между двумя учебными счетами.

 

Предположим, что таблица Accounts уже существует и содержит поля Id и Balance.

 

SQL-код:

 

BEGIN TRANSACTION;

 

UPDATE Accounts

SET Balance = Balance - 1000

WHERE Id = 1;

 

UPDATE Accounts

SET Balance = Balance + 1000

WHERE Id = 2;

 

COMMIT;

 

Объяснение:

 

BEGIN TRANSACTION — начинает транзакцию.

UPDATE — изменяет данные в таблице.

SET — устанавливает новое значение.

WHERE — определяет запись, которую нужно изменить.

COMMIT — подтверждает изменения.

 

Результат:

 

Со счёта 1 списывается 1000 тенге.

На счёт 2 зачисляется 1000 тенге.

 

Обе операции объединены в одну транзакцию.

 

В реальном приложении перед списанием необходимо проверить существование счетов, достаточность средств и успешность обоих обновлений. Если операция завершается ошибкой, транзакцию следует откатить с помощью ROLLBACK.

 

Транзакция помогает избежать частичного сохранения связанных изменений.