API-пайплайн: создание и редактирование страницы проекта

Индекс: API-пайплайны — индекс

Цель: создать страницу своего проекта и поддерживать её в актуальном виде: текст, место, фото, контакты, переводы и кто её видит.

Шаги

  1. Создание.
POST /v0/my/projects
Idempotency-Key: proj-bikes-1
{"title": "Bike repair in Lisbon", "content": "What I offer, prices, hours…",
 "language": "en", "handle": "example-bikes",
 "rubrics": ["<rubric nonce>"], "location": "<place nonce>",
 "translate_mode": "auto"}
→ {"nonce": "470000000000000001", "card_type": "project", "visibility": "Private", "handle": "example-bikes", …}
  1. Фото. Загрузите, затем прикрепите:
POST /v0/my/media/upload      (multipart/form-data, up to 10 images, 10 MB each)
→ {"files": [{"hash": "<sha256>", "format": "webp", "width": 1200, "height": 800, …}]}

PATCH /v0/my/projects/470000000000000001
{"avatar": "media:<sha256>.webp", "media_add": ["media:<sha256>.webp"]}

media заменяет всю галерею (по порядку, до 20; [] очищает её); media_add добавляет в конец; avatar задаёт круглую картинку. Не вставляйте изображения в content.

  1. Контакты.
POST /v0/my/projects/470000000000000001/contacts
Idempotency-Key: proj-bikes-contact-1
{"kind": "Telegram", "value": "@example", "is_primary": true,
 "publicity": "Everyone", "requires_reveal": true}
→ {"nonce": "470000000000000011", "kind": "Telegram", "value": "@example", …}
  1. Правка текста, места, рубрик: PATCH /v0/my/projects/{nonce} с любыми из title, content, language (на каком языке вы пишете), handle, rubrics, location, canonical_lang (исходный язык), translate_mode + translate_langs. Поля, которые вы не передали, не меняются.

  2. Публикация.

PATCH /v0/my/projects/470000000000000001
{"visibility": "Public", "publicity": "Everyone",
 "permissions": {"read": true, "write": false, "execute": false}}
  1. Проверка: GET /v0/graph/projects/{nonce | @handle} показывает страницу так, как её видят другие; GET /v0/my/projects/{nonce} — как её видит владелец.

Что происходит за кадром

Правила

Поверхность API

Эндпоинт Назначение FE ИИ / оракул
POST /v0/my/projects Создать (Private) да да
PATCH /v0/my/projects/{nonce} Правка текста, места, фото, видимости да да
GET /v0/my/projects, /v0/my/projects/{nonce} Ваши проекты да да
POST /v0/my/media/upload Загрузка изображений да да
POST / GET /v0/my/projects/{ident}/contacts Добавить / список контактов да да
PATCH / DELETE /v0/my/contacts/{nonce} Правка / удаление контакта да да
GET /v0/graph/projects/{ident} Публичная страница да да

Упомянуто