Aanzetten
De API staat standaard uit. Zet hem aan inconfig.yml:
1
Kies een sleutel
Vervang
CHANGE-ME door een lange, willekeurige sleutel. Iedereen met deze sleutel kan geld storten en opnemen.2
Zet de API aan
Zet
rest-api.enabled op true.3
Herstart de server
De HTTP-server start alleen bij het opstarten van de plugin. Na een herstart zie je in de console
HTTP server started on port 4567 and host 127.0.0.1.api-key werkt na /omt reload, omdat de sleutel bij elke request opnieuw wordt gelezen. Voor enabled, host en port moet je de server herstarten.
De API hoort bij de module restapi. Staat die in disabled-modules, dan start de API ook niet. Zie Configuratie.
Authenticatie
Stuur bij elke request de headerX-API-Key mee. De waarde moet precies gelijk zijn aan rest-api.api-key.
401 met de platte tekst Unauthorized request. Dat geldt voor elk pad, ook voor paden die niet bestaan.
Antwoorden
Elk antwoord is een JSON-object metsuccess (boolean). Gaat er iets mis, dan staat er ook error (string) in.
- De API zet geen
Content-Type-header. Parse het antwoord zelf als JSON. - Bij de speler-endpoints en bij
GET /api/plotsis de HTTP-status ook bij een fout200. Kijk daar dus naarsuccess, niet naar de status.
expires_at van -1 betekent dat iets nooit verloopt.
Endpoints
Spelers
Alle speler-endpoints gebruiken de UUID van de speler als{uuid}, met streepjes.
Deze fouten gelden voor alle speler-endpoints. De HTTP-status is daarbij 200.
GET /api/player/{uuid}
Geeft de basisgegevens van een speler.GET /api/player/{uuid}/prefixes
Geeft alle prefixen van een speler.prefixes is een object met het ID van de prefix als sleutel.
GET /api/player/{uuid}/colors
Geeft alle kleuren van een speler.colors is een object met het ID van de kleur als sleutel.
GET /api/player/{uuid}/fitness
Geeft de fitheid van een speler.statistics is een object met het type statistiek als sleutel, zoals WALKING, SPRINTING, CLIMBING, SWIMMING, FLYING, DRINKING, EATING en HEALTH. De request vraagt ook een nieuwe berekening van de fitheid aan.
GET /api/player/{uuid}/criminalrecords
Geeft het strafblad van een speler in het objectcriminalrecords.
GET /api/player/{uuid}/bankaccounts
Geeft de privérekening van een speler en alle rekeningen waar hij gebruiker van is.accounts is een object met de UUID van de rekening als sleutel.
success is false als de speler geen privérekening heeft. accounts staat er dan wel in, met de andere rekeningen.
GET /api/player/{uuid}/plots
Geeft de plots waar een speler eigenaar of lid van is.plots is een object met de naam van de regio als sleutel. Elke plot heeft dezelfde velden als bij GET /api/plots verderop, plus:
In de huidige versie bevat deze lijst ook WorldGuard-regio’s die geen plot zijn, als de speler daar lid van is.
Bankrekeningen
GET /api/bankaccounts/
Geeft alle bankrekeningen als lijst. Let op de/ aan het eind van het pad.
GET /api/bankaccount/{uuid}
Geeft één rekening.{uuid} is de UUID van de rekening. De privérekening van een speler heeft dezelfde UUID als de speler.
GET /api/bankaccounts/.
GET /api/bankaccount/{uuid}/users
Geeft de gebruikers van een rekening.users is een object met de UUID van de speler als sleutel.
GET /api/bankaccount/{uuid}/transactions
Geeft de transacties van een rekening, de nieuwste eerst.Fouten bij één rekening
Deze fouten gelden voor alle endpoints onder/api/bankaccount/{uuid}.
POST /api/bankaccount/{uuid}/deposit
Stort geld op een rekening. Stuur een JSON-body met het bedrag:
Antwoord:
POST /api/bankaccount/{uuid}/withdraw
Neemt geld op van een rekening. De body en het antwoord zijn hetzelfde als bijdeposit.
Naast de fouten bij één rekening kunnen deze twee endpoints ook geven:
Storten en opnemen via de API controleren niet of een rekening bevroren is. Ze maken ook geen transactie aan in de transactiegeschiedenis.
Plots
Een plot is een WorldGuard-regio.{id} is de naam van de regio. De API zoekt in alle werelden, en alleen in regio’s met een prioriteit van 0 of hoger.
GET /api/plots
Geeft alle plots: regio’s met de flagopenmt-plot. plots is een object met de naam van de regio als sleutel.
success: false met de foutmelding in error, en status 200.
GET /api/plots/{id}
Geeft één regio in het veldplot, met dezelfde velden als hierboven. Deze endpoint controleert niet of de regio de flag openmt-plot heeft.
Eigenaren en leden aanpassen
Stuur de UUID van de speler als JSON-body. Zonder body met
uuid mislukt de request.
Ook deze endpoints controleren niet of de regio een plot is.
Plaatsen
Zie Plaatsen voor wat werelden en steden zijn.GET /api/places/worlds
Geeft alle geregistreerde werelden.500 met Failed to retrieve worlds.
GET /api/places/cities
Geeft alle steden. De velden zijn dezelfde als bij werelden, plus:500 met Failed to retrieve cities.