Instalado, Docker-reto, jetonoj kaj gvidiloj en unu pli legebla interfaco.
API por movaj klientoj, labortablaj programoj kaj aŭtomatigo ĉirkaŭ Militant-instanco.
Instalilo · Docker · Rapida komenco · Vikio · Sekureco
La plej simpla metodo estas uzi la dediĉitan instalilon:
mkdir -p militant-api-install
cd militant-api-install
curl -fsSLO https://gitlab.com/militant1/api-installer/-/raw/main/militant-api
chmod +x militant-api
./militant-api
La skripto:
uploads.env.apidocker-compose.api.ymlUtilaj komandoj:
./militant-api update./militant-api uninstallDediĉita gvidilo: https://gitlab.com/militant1/api-installer
uploadsLa API nun provizas kompletan poŝtelefonan Fediversan interfacon per v1/fediverse.php: loka profilo, foraj abonantoj, fora sekvatlisto, serĉo de adresoj @uzanto@instanco, solvado de foraj profiloj, agoj por sekvi/malsekvi kaj sinkronigita fluo de foraj afiŝoj. Ĝi ankaŭ aŭtomate ekigas ActivityPub-dissendadon dum kreado de novaj afiŝoj uzante RSA HTTP-Signaturojn.
Vidu dokumentadon de Retejopunkto
Se vi preferas administri Compose permane:
cp docker-compose.casaos.yml docker-compose.api.yml
docker compose -f docker-compose.api.yml up -d
Ĉefaj variabloj:
DB_HOST aŭ API_DB_HOST: MySQL-gastiganto de la Militant-instancoDB_NAME aŭ API_DB_NAME: ĉefa datumbazoDB_USER / DB_PASSWORD: SQL-identigilojMAIN_APP_HOST: interna retadreso de la ĉefa aplikaĵo en la Docker-reto, ekzemple http://militant-web:80API_UPLOADS_PATH: interna vojo por dosieroj, kutime /var/www/uploadsAPI_CORS_ORIGINS: * aŭ permesitaj domajno(j)API_REQUIRE_HTTPS: true por publika HTTPS-produktadoPor generi LiveKit-tokenojn servilflanke (POST /v1/lives.php?path=token), agordu sekretojn:
LIVEKIT_URL (wss://...), LIVEKIT_API_KEY, LIVEKIT_API_SECRETconfig/livekit.local.php (generita el la reta panelo)GET /v1/lives.php?path={id}) povas inkluzivi background_image, kiun la kreinto povas gxisdatigi per PUT /v1/lives.php?path={id}/background.Por fidindaj poŝtelefonaj vokoj, speciale en 4G/5G, agordu TURN-servilon:
WEBRTC_TURN_URLS, WEBRTC_TURN_AUTH_SECRET, WEBRTC_TURN_TTL, WEBRTC_TURN_REALMconfig/turn.local.php (generita el la reta panelo)GET /v1/settings.php redonas stun_servers, turn_servers kaj webrtc_ice_serversWEBRTC_TURN_AUTH_SECRET estas agordita, la API generas provizorajn HMAC TURN-kredencialojn (rekomendata reĝimo, kongrua kun coturn use-auth-secret)Reta panelo (post ensaluto per Militant-uzantkonto):
.../admin/login.php kaj poste .../admin/tokens.php.../admin/livekit.php: enigi LiveKit-kredencialojn (konta pasvorto necesas por konservi) — nur Militant-teknikistoj (same kiel la retejo: users.is_admin = 1; rezervo: is_technician aux LIVEKIT_TECHNICIAN_USER_IDS).../admin/turn.php: enigi TURN / Coturn-agordon por la API kaj montri la kopiendajn coturn liniojnadmin.php?tab=technicians (altigo / forigo de is_admin).Vidu ankau .env.example ĉe GitLab por variablonomoj.
Post kiam la API funkcias:
http://localhost:9082/v1/index.phphttp://localhost:9082/admin/login.phphttp://localhost:9082/admin/livekit.phphttp://localhost:9082/admin/turn.phphttp://localhost:9082/health-public.phpEkzemplo:
curl http://localhost:9082/v1/index.php
curl -X POST http://localhost:9082/v1/auth.php \
-H "Content-Type: application/json" \
-d '{"username":"via_uzanto","password":"via_pasvorto"}'
Uzi la tokenon:
curl http://localhost:9082/v1/posts.php \
-H "Authorization: Bearer VIA_TOKEN"
Disponeblaj finpunktoj:
GET /v1/feature_suggestions.php
GET /v1/feature_suggestions.php?filter=popular
GET /v1/feature_suggestions.php?id=12
GET /v1/feature_suggestions.php?action=stats
POST /v1/feature_suggestions.php
POST /v1/feature_suggestions.php?action=vote
POST /v1/feature_suggestions.php?action=comment
POST /v1/feature_suggestions.php?action=update_status
DELETE /v1/feature_suggestions.php?id=12
Ekzemplo de kreado:
curl -X POST http://localhost:9082/v1/feature_suggestions.php \
-H "Authorization: Bearer VIA_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title": "Senkonekta reĝimo",
"description": "Ebligi lokan konsulton de sugestoj kaj stato kiam la reto ne estas disponebla."
}'
Privata mesagxado kaj mesagxgrupoj nun subtenas:
parent_idDisponeblaj finpunktoj:
GET /v1/messages.php?user_id=34
POST /v1/messages.php
POST /v1/messages.php?action=react
DELETE /v1/messages.php?action=react&message_id=56
GET /v1/message_groups.php?path=12/messages
POST /v1/message_groups.php?path=12/messages
POST /v1/message_groups.php?path=messages/78/reactions
DELETE /v1/message_groups.php?path=messages/78/reactions
Pliaj kampoj resenditaj por privataj mesagxoj:
parent_idparent_contentparent_sender_usernamereactions_summaryuser_reactionPliaj kampoj resenditaj por grupaj mesagxoj:
parent_idparent_contentparent_usernamereactions_summaryuser_reactionEkzemplo de respondo al privata mesagxo:
curl -X POST http://localhost:9082/v1/messages.php \
-H "Authorization: Bearer VIA_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"user_id": 34,
"content": "Mi respondas al via mesagxo",
"parent_id": 56
}'
Ekzemplo de reago sur privata mesagxo:
curl -X POST http://localhost:9082/v1/messages.php?action=react \
-H "Authorization: Bearer VIA_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"message_id": 56,
"reaction": "heart"
}'
Ekzemplo de respondo en grupo:
curl -X POST http://localhost:9082/v1/message_groups.php?path=12/messages \
-H "Authorization: Bearer VIA_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"content": "Mi prizorgos cxi tiun",
"parent_id": 78
}'
Se vi uzas la dediĉitan instalilon:
./militant-api update
Alie per mana Docker Compose:
docker compose -f docker-compose.api.yml pull
docker compose -f docker-compose.api.yml up -d
Malinstalo:
./militant-api uninstall
Por botaj integriĝoj kaj auxtomatigoj, komencu per la enmetita ekzemplo: