MILITANT API

Militant API V2

Memstara, malcentrigita kaj libera programinterfaco (REST, WebRTC, ActivityPub). Konstruita por kolektiva emancipiĝo kaj komunaj ciferecaj rimedoj sen monopolo.

API Aktiva (2.0.0) AGPLv3 Libera Kodo Go 1.26 + MariaDB LTS

Aŭtentigo & Ĵetonoj

POST /v2/auth/login — Ensaluto per uzantnomo/retpoŝto kaj pasvorto (kun TOTP 2FA)
POST /v2/auth/refresh — Renovigo de aktiva API-ĵetono
GET /v2/tokens — Listo de personaj alir-ĵetonoj
POST /v2/tokens — Kreado de nomita ĵetono kun limigita vivdaŭro

Afiŝoj & Sociaj Enhavoj

GET /v2/posts — Legado de fluo (sekvata, tutmonda, aŭ de uzanto)
POST /v2/posts — Publikigo de nova mesaĝo
GET /v2/comments?post_id={id} — Komentoj kaj respondoj
POST /v2/comments — Aldono de komento aŭ respondo kun parent_id

Grupoj, Paĝoj & Mesaĝado

GET /v2/groups — Listo de memadministrataj grupoj
GET /v2/pages — Iniciatoj kaj militantaj paĝoj
GET /v2/messages — Privataj konversacioj
POST /v2/translate — Tradukado per memgastigita LibreTranslate

Pet-Agordo

Respondo

Atendas peton... 0 ms
// La respondo aperos ĉi tie

Rapida Dediĉita Lanĉo (Quickstart)

Uzu cURL por testi rekte vian lokan aŭ foran instancon :

curl -s https://api.militant.revlibertaire.com/v2 | jq .

Aŭtentigo per Ĵetono

Ĉiu peto protektita postulas la kaplinion Authorization kun portanta ĵetono :

curl -H "Authorization: Bearer <VIA_JETONO>" https://api.militant.revlibertaire.com/v2/posts

Python SDK

Pura modulo sen ekstera dependeco, plene tipita per dataclasses kaj kongrua kun Python 3.10+.

from militant import MilitantClient

client = MilitantClient(base_url="https://api.militant.revlibertaire.com")
client.authenticate("uzantnomo", "pasvorto")
posts = client.get_posts(feed="global")
print(posts)

TypeScript / JS SDK

Moderna ESM-kliento uzanta la norman fetch API de retumiloj kaj Node.js/Bun.

import { MilitantClient } from '@militant/sdk';

const client = new MilitantClient({ baseUrl: 'https://api.militant.revlibertaire.com' });
await client.login('uzantnomo', 'pasvorto');
const posts = await client.getPosts({ feed: 'global' });
console.log(posts);

Go SDK

Oficiala Go-kliento, nula ekstera dependeco (pura net/http), forta tipado kaj subteno de context.Context.

client := militant.NewClient("https://api.militant.revlibertaire.com")
token, err := client.Login(ctx, "uzantnomo", "pasvorto", "")
posts, err := client.ListPosts(ctx, "global", 1, 10)

Rust SDK

Oficiala Rust-kliento uzanta ureq kaj serde. Sekura memoro, nula nesekura kodo kaj sinkrona facileco.

let mut client = MilitantClient::new("https://api.militant.revlibertaire.com");
let auth = client.login("uzantnomo", "pasvorto", None)?;
let posts = client.list_posts("global", 1, 10)?;