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