NL

De openbare API

Het overzicht van de games is zonder account als JSON te lezen: voor een andere site, een app, een bot…

De API is alleen-lezen en staat aanroepen vanaf elke site toe (CORS). De antwoorden worden een minuut in de cache bewaard.

De games

Parameter
category een categorie (haar slug)
kind original (eigen game), cpc (Amstrad CPC-remake), port (port)
order[rating], order[plays], order[publishedAt], order[title] de sortering, asc of desc; meerdere achter elkaar om gelijke standen te beslissen. Standaard: de nieuwste eerst
page, itemsPerPage 30 games per pagina, tot 100
curl -g -H 'Accept: application/json' 'https://<ce site>/api/games?category=arcade&order[rating]=desc'

Elke game:

Veld
slug, title, description
category, kind zijn categorie (slug), zijn soort project
author zijn maker (GitHub-gebruikersnaam)
rating, ratings zijn gemiddelde cijfer op 5 (null zonder stemmen), het aantal stemmen
plays het aantal gestarte potjes
engine, publishedAt de versie van de JumPHP-engine, de datum van de laatste publicatie
forkOf de game waarvan hij een fork is, anders null
url, play, source zijn pagina, de game op volledig scherm, zijn doorbladerbare code
image zijn afbeelding van 640 × 360 (null als hij er geen heeft)
repository, manifest zijn GitHub-repository, de lijst van zijn gepubliceerde bestanden (externe modus van JumPHP)

De sortering op cijfer is dezelfde als op de gamespagina: het gemiddelde wordt naar 3 getrokken zolang een game weinig stemmen heeft (drie spookstemmen), zodat één enkele 5 op 5 niet voor veel games met een 4,5 komt.

Pagina's en JSON-LD

In gewone JSON (Accept: application/json) is een lijst een array. In JSON-LD (Accept: application/ld+json, het standaardformaat) geeft ze ook het totale aantal (totalItems) en de adressen van de pagina's (view.next, view.last):

{
  "@id": "/api/games",
  "totalItems": 42,
  "member": [ { "@id": "/api/games/pong", "slug": "pong", "title": "PONG", "…": "…" } ],
  "view": { "next": "/api/games?page=2", "last": "/api/games?page=2" }
}

Fouten: 404 voor een game of categorie die niet bestaat (of niet meer wordt getoond), 422 voor een ongeldige parameter (kind=zzz), in het formaat Problem Details (application/problem+json).