Какие знаешь способы обмена данными

«Какие знаешь способы обмена данными» — вопрос из категории API и интеграции, который задают на 27% собеседований Системный Аналитик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

  1. REST API – HTTP-запросы (GET, POST, PUT, DELETE) с JSON/XML.
    Пример (Python, requests):
    import requests
    response = requests.get('https://api.example.com/data')
    print(response.json())
  1. GraphQL – Запросы с гибкой выборкой данных.
    Пример (запрос):
    query {
      user(id: "1") {
        name
        email
      }
    }
  1. WebSockets – Двустороннее соединение в реальном времени.
    Пример (JavaScript):
    const socket = new WebSocket('wss://example.com');
    socket.onmessage = (event) => console.log(event.data);
  1. gRPC – Высокопроизводительный RPC с Protocol Buffers.
    Пример (определение .proto):
    service UserService {
      rpc GetUser (UserRequest) returns (UserResponse);
    }
  1. Message Brokers (Kafka, RabbitMQ) – Асинхронная передача через очереди.
    Пример (Kafka, Python):
    from kafka import KafkaProducer
    producer = KafkaProducer(bootstrap_servers='localhost:9092')
    producer.send('topic', b'message')
  1. Файлы (CSV, JSON, XML) – Обмен через файловые хранилища (S3, FTP).

  2. Базы данных – Прямые SQL-запросы или репликация.

  3. Webhooks – HTTP-колбэки для событий.

Выбор зависит от требований к скорости, надежности и сложности интеграции.