С какими типами API вы работали на предыдущем проекте?

Ответ

Основным был REST API (JSON over HTTP), также использовался WebSocket API для real-time функциональности.

REST API (JSON):

  • Использовались стандартные HTTP-методы: GET, POST, PUT, DELETE.
  • Ответы структурированы в JSON с соответствующими HTTP-статусами (200, 201, 400, 404, 500).
  • Документация велась с использованием Swagger (OpenAPI 3.0).

Пример теста для REST endpoint (Python, requests):

import requests

def test_get_user_by_id():
    url = 'https://api.example.com/v1/users/1'
    response = requests.get(url)

    assert response.status_code == 200
    data = response.json()
    assert data['id'] == 1
    assert 'email' in data

WebSocket API:

  • Использовался для уведомлений и чат-функций.
  • Тестирование включало проверку установки соединения, формата отправляемых/получаемых сообщений и обработки разрыва соединения.

Ответ 18+ 🔞

Ну, слушай, а как же без этого, блядь? Вся наша архитектура держалась на двух китах, как в той сказке, только киты эти — REST API и WebSocket API. Первый — для всей обычной хуйни, когда ты просто стучишься на сервер и получаешь JSON обратно. Второй — для всего, что должно лететь в реальном времени, без этих твоих дурацких опросов каждые пять секунд.

REST API (JSON over HTTP):

  • Всё по канону, ёпта. Тыкаешь стандартными методами: GET — посмотреть, POST — запихнуть, PUT — поменять, DELETE — удалить нахуй.
  • Ответы — чистый JSON, а статусы — как в учебнике: 200 — ок, 201 — создал, 400 — сам дурак, 404 — нихуя не нашёл, 500 — серверу пиздец.
  • А чтобы не было вопросов «а как это работает, блядь?», документацию писали на Swagger (OpenAPI 3.0). Открыл браузер — и всё как на ладони, красота.

Вот, смотри, как это тестировали (Python, requests):

import requests

def test_get_user_by_id():
    url = 'https://api.example.com/v1/users/1'
    response = requests.get(url)

    assert response.status_code == 200
    data = response.json()
    assert data['id'] == 1
    assert 'email' in data

Всё просто: дернули юзера, проверили, что статус 200 и в ответе есть почта. Если нет — пошёл нахуй, тест не прошёл.

WebSocket API:

  • А вот это уже для движухи. Уведомления, чаты — всё, что должно прилетать мгновенно, без твоего «а обнови-ка страничку».
  • Тестировали, ебать, всё подряд: открывается ли соединение, летят ли сообщения в правильном формате, и что будет, если связь нахуй порвётся. Если после разрыва клиент не пытается переподключиться — это пиздец, а не фича.