Gå til hovedinnhold

API-referanse

3DPrintForge eksponerer et fullverdig REST API med 590+ endepunkter. API-dokumentasjonen er tilgjengelig direkte i dashboardet.

Interaktiv dokumentasjon​

Åpne OpenAPI-dokumentasjonen i nettleseren:

https://din-server:3443/api/docs

Her finner du alle endepunkter, parametere, request/response-skjemaer og mulighet for å teste API-et direkte.

Autentisering​

API-et bruker Bearer token-autentisering (JWT):

# Logg inn og hent token
curl -X POST https://din-server:3443/api/auth/login \
-H "Content-Type: application/json" \
-d '{"username": "admin", "password": "ditt-passord"}'

# Respons
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expiresIn": "24h"
}

Bruk tokenet i alle påfølgende kall:

curl https://din-server:3443/api/printers \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."

Rate limiting​

API-et er rate-begrenset for å beskytte serveren:

GrenseVerdi
Forespørsler per minutt200
Burst (maks per sekund)20
Respons ved overskridelse429 Too Many Requests

Retry-After-header i svaret angir hvor mange sekunder til neste forespørsel er tillatt.

Endepunkter oversikt​

Autentisering​

MetodeEndepunktBeskrivelse
POST/api/auth/loginLogg inn, hent JWT
POST/api/auth/logoutLogg ut
GET/api/auth/meHent innlogget bruker

Printere​

MetodeEndepunktBeskrivelse
GET/api/printersListe alle printere
POST/api/printersLegg til printer
GET/api/printers/:idHent printer
PUT/api/printers/:idOppdater printer
DELETE/api/printers/:idSlett printer
GET/api/printers/:id/statusSanntidsstatus
POST/api/printers/:id/commandSend kommando

Filament​

MetodeEndepunktBeskrivelse
GET/api/filamentsListe alle spoler
POST/api/filamentsLegg til spole
PUT/api/filaments/:idOppdater spole
DELETE/api/filaments/:idSlett spole
GET/api/filaments/statsForbruksstatistikk
GET/api/inventory/cost-estimateKostnadsestimat for enkelt-print
POST/api/inventory/cost-estimate/batchBatch-kostnadsestimat (array av items)

Printhistorikk​

MetodeEndepunktBeskrivelse
GET/api/historyListe historikk (paginert)
GET/api/history/:idHent enkeltprint
GET/api/history/exportEksporter CSV
GET/api/history/statsStatistikk
MetodeEndepunktBeskrivelse
GET/api/queueHent køen
POST/api/queueLegg til jobb
PUT/api/queue/:idOppdater jobb
DELETE/api/queue/:idFjern jobb
POST/api/queue/dispatchTving utsendelse

WebSocket API​

I tillegg til REST finnes et WebSocket API for sanntidsdata:

const ws = new WebSocket('wss://din-server:3443/ws');

ws.onmessage = (event) => {
const data = JSON.parse(event.data);
console.log(data.type, data.payload);
};

Meldingstyper (innkommende)​

  • printer.status — oppdatert printerstatus
  • print.progress — fremgangsprosent oppdatering
  • ams.update — AMS-tilstandsendring
  • notification — varselmelding

Feilkoder​

KodeBetyr
200OK
201Opprettet
400Ugyldig forespørsel
401Ikke autentisert
403Ikke autorisert
404Ikke funnet
429For mange forespørsler
500Serverfeil