HTTP / API

HTTP headers, методы, REST, GraphQL, WebSocket/SSE

HTTP методы

Справочный блок 1

GET

Получить ресурс

POST

Создать ресурс

PUT

Обновить ресурс (полностью)

PATCH

Обновить ресурс (частично)

DELETE

Удалить ресурс

HEAD

Получить только заголовки

OPTIONS

Получить доступные методы

HTTP заголовки

Справочный блок 2

Content-Type

Тип контента

Код
Content-Type: application/json

Authorization

Авторизация

Код
Authorization: Bearer token

Accept

Принимаемые типы

Код
Accept: application/json

User-Agent

Информация о клиенте

Код
User-Agent: Mozilla/5.0...

Cache-Control

Управление кэшем

Код
Cache-Control: no-cache

ETag

Тег версии ресурса

Код
ETag: "abc123"

CORS заголовки

Код
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST

REST API

Справочный блок 3

GET /users

Список пользователей

GET /users/:id

Получить пользователя

POST /users

Создать пользователя

PUT /users/:id

Обновить пользователя

DELETE /users/:id

Удалить пользователя

Фильтрация

Код
GET /users?status=active&limit=10

Пагинация

Код
GET /users?page=1&per_page=20

GraphQL

Справочный блок 4

Запрос

Код
query {
  user(id: 1) {
    name
    email
  }
}

Мутация

Код
mutation {
  createUser(name: "John") {
    id
    name
  }
}

Переменные

Код
query($id: ID!) {
  user(id: $id) {
    name
  }
}

Фрагменты

Код
fragment UserFields on User {
  id
  name
  email
}

WebSocket

Справочный блок 5

Подключение

Код
const ws = new WebSocket("ws://example.com");

Отправка

Код
ws.send(JSON.stringify({ type: "message", data: "hello" }));

Получение

Код
ws.onmessage = (event) => {
  const data = JSON.parse(event.data);
};

Закрытие

Код
ws.close();

Server-Sent Events (SSE)

Справочный блок 6

Подключение

Код
const eventSource = new EventSource("/events");

Получение

Код
eventSource.onmessage = (event) => {
  console.log(event.data);
};

Закрытие

Код
eventSource.close();