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.
Транзакция
помогает избежать частичного сохранения связанных изменений.