Особенности API и поддержки ActivityPub на разных платформах Fediverse
#kb #ActivityPub #Fediverse #Mastodon #Pleroma #Misskey #Friendica #generated by #Grok
В Fediverse разные платформы используют различные API для взаимодействия между клиентами и серверами, а также для федерации (обмена данными между серверами). Основной протокол, объединяющий большинство площадок Fediverse, — это ActivityPub, который отвечает за сервер-серверное (S2S) и клиент-серверное (C2S) взаимодействие. Однако конкретные API, предоставляемые платформами для разработчиков и пользователей, могут отличаться в зависимости от их архитектуры и целей. Рассмотрим основные платформы Fediverse и их API.
1. Mastodon
- API: Mastodon предоставляет собственный REST API, который стал де-факто стандартом для многих микроблогинговых платформ в Fediverse. Этот API ориентирован на клиент-серверное взаимодействие и позволяет приложениям (например, мобильным клиентам) выполнять такие действия, как публикация сообщений, получение ленты, управление подписками и т.д.
- Особенности:
- Поддерживает авторизацию через OAuth 2.0.
- Основные эндпоинты:
/api/v1/statuses
(публикация и получение постов),/api/v1/timelines
(ленты),/api/v1/accounts
(управление аккаунтами). - Полная документация доступна на официальном сайте Mastodon.
- Совместимость: Многие платформы, такие как Pleroma или Glitch-soc, частично или полностью совместимы с Mastodon API, что позволяет использовать клиенты Mastodon (например, Tusky или Fedilab) с другими серверами.
- ActivityPub: Используется для федерации между серверами. Mastodon реализует S2S часть протокола для обмена данными (посты, подписки, лайки и т.д.), но C2S (клиент-серверная часть ActivityPub) поддерживается ограниченно.
2. Pleroma
- API: Pleroma поддерживает собственный REST API, но также частично совместим с Mastodon API, что делает его доступным для клиентов, разработанных для Mastodon.
- Особенности:
- Расширяет функциональность Mastodon API, добавляя такие возможности, как поддержка Markdown в постах и более высокие лимиты символов (до 5000 по умолчанию).
- Эндпоинты включают
/api/v1/statuses
и/api/v1/timelines
, но есть и специфические для Pleroma, например, для управления чатами (/api/v1/pleroma/chats
). - Поддерживает авторизацию через OAuth.
- Совместимость: Совместим с большинством клиентов Mastodon, хотя некоторые функции (например, чаты) требуют адаптации.
- ActivityPub: Полностью поддерживает федерацию через ActivityPub, что обеспечивает взаимодействие с Mastodon, PeerTube и другими платформами.
3. Misskey
- API: Misskey использует собственный REST API, который значительно отличается от Mastodon API и не совместим с ним напрямую.
- Особенности:
- Поддерживает сложные функции, такие как реакции (эмодзи вместо лайков), кастомные виджеты и Drive (хранилище файлов).
- Эндпоинты:
/api/notes/create
(создание постов),/api/users/show
(информация о пользователях). - Использует WebSocket для real-time обновлений (например, ленты и уведомлений).
- Документация доступна в репозитории Misskey.
- Совместимость: Требуются специализированные клиенты (например, официальный веб-клиент или адаптированные приложения), так как стандартные клиенты Mastodon не работают.
- ActivityPub: Поддерживает федерацию через ActivityPub, что позволяет взаимодействовать с другими платформами Fediverse, хотя некоторые функции (например, реакции) могут отображаться некорректно на Mastodon.
4. PeerTube
- API: PeerTube предоставляет REST API для управления видео-контентом и взаимодействия с платформой.
- Особенности:
- Эндпоинты:
/api/v1/videos
(загрузка и получение видео),/api/v1/users
(управление пользователями),/api/v1/playlists
(плейлисты). - Поддерживает OAuth для авторизации.
- Ориентирован на работу с видео: загрузка, стриминг, комментарии.
- Совместимость: Клиенты, разработанные для PeerTube, не совместимы с микроблогинговыми платформами вроде Mastodon, но федерация через ActivityPub позволяет пользователям других платформ подписываться на каналы и комментировать видео.
- ActivityPub: Использует ActivityPub для федерации, поддерживая такие объекты, как
Video
иPlaylist
.
5. Pixelfed
- API: Pixelfed предлагает REST API, частично совместимый с Mastodon API, но адаптированный под работу с изображениями.
- Особенности:
- Эндпоинты:
/api/v1/statuses
(публикация фото),/api/v1/accounts
(управление профилями). - Поддерживает функции Instagram-подобной платформы: фильтры, альбомы, истории.
- Авторизация через OAuth.
- Совместимость: Некоторые клиенты Mastodon могут работать с Pixelfed, но для полного функционала нужны специализированные приложения.
- ActivityPub: Полная поддержка федерации, что позволяет пользователям Mastodon или Pleroma видеть и комментировать посты Pixelfed.
6. Friendica
- API: Friendica имеет собственный REST API, но он менее стандартизирован и реже используется сторонними клиентами.
- Особенности:
- Поддерживает функции, схожие с Facebook: длинные посты, группы, события.
- Эндпоинты ориентированы на управление контентом и социальными связями.
- Совместимость: Не совместим с Mastodon API, требует собственных клиентов или использования через веб-интерфейс.
- ActivityPub: Поддерживает федерацию, а также исторически интегрируется с другими протоколами, такими как Diaspora* и OStatus.
7. WriteFreely
- API: WriteFreely предоставляет минималистичный REST API для работы с блогами.
- Особенности:
- Эндпоинты:
/api/posts
(создание и управление постами),/api/collections
(управление блогами). - Простота и ориентация на публикацию длинных текстов.
- Совместимость: Не совместим с Mastodon API, используется в основном через веб-интерфейс или специализированные клиенты.
- ActivityPub: Поддерживает федерацию, позволяя подписываться на блоги с других платформ.
Общие черты и различия
- ActivityPub как основа федерации: Все перечисленные платформы используют ActivityPub для S2S взаимодействия, что обеспечивает их совместимость на уровне Fediverse. Однако реализация C2S (клиент-серверной части ActivityPub) редко используется напрямую — вместо этого платформы создают свои REST API.
- Совместимость с Mastodon API: Mastodon API стал стандартом для микроблогинга, и платформы вроде Pleroma и Pixelfed частично его поддерживают, чтобы упростить разработку клиентов. Misskey и Friendica, напротив, идут своим путем.
- Специализация: API каждой платформы отражает ее назначение — микроблогинг (Mastodon, Pleroma, Misskey), видео (PeerTube), фото (Pixelfed), блоги (WriteFreely) или соцсеть (Friendica).
Итог
API в Fediverse разнообразны и зависят от специфики платформы. Mastodon API доминирует в микроблогинговом сегменте благодаря широкому распространению и поддержке клиентов, но другие платформы предлагают свои уникальные API, которые лучше соответствуют их задачам. Для федерации все они полагаются на ActivityPub, что обеспечивает базовую совместимость, но для разработчиков приложений важно учитывать различия в клиентских API каждой платформы. Если вы планируете создавать клиент для Fediverse, начните с изучения Mastodon API как наиболее универсального, а затем адаптируйте его под особенности других платформ.