Ответ
1. REST (Representational State Transfer) Архитектурный стиль, использующий стандартные HTTP-методы (GET, POST, PUT, DELETE) и форматы данных (JSON, XML). Ресурсы идентифицируются URL.
// Пример Spring Boot REST-контроллера
@RestController
@RequestMapping("/api/books")
public class BookController {
@GetMapping("/{id}")
public Book getBook(@PathVariable Long id) {
return bookService.findById(id);
}
}
2. SOAP (Simple Object Access Protocol) Протокол на основе XML с жесткой спецификацией (WSDL). Обеспечивает высокую стандартизацию и безопасность, но более «тяжелый». 3. GraphQL Язык запросов, позволяющий клиенту точно указать, какие данные и в какой форме ему нужны. Решает проблемы over-fetching и under-fetching REST.
# Пример запроса GraphQL
query {
user(id: 1) {
name
email
posts(limit: 5) {
title
}
}
}
4. gRPC (gRPC Remote Procedure Calls) Высокопроизводительный RPC-фреймворк от Google. Использует бинарный протокол Protocol Buffers (protobuf) для сериализации и HTTP/2 для транспорта.
// Пример proto-файла
service UserService {
rpc GetUser (GetUserRequest) returns (UserResponse);
}
message GetUserRequest {
int32 user_id = 1;
}
5. WebSocket Протокол для установки постоянного двустороннего (full-duplex) соединения между клиентом и сервером, идеален для real-time приложений (чаты, уведомления).