TR

Herkese açık API

Oyun dizini hesapsız, JSON olarak okunur: başka bir site, bir uygulama, bir bot için…

API salt okunurdur ve her siteden gelen çağrılara izin verir (CORS). Yanıtlar bir dakika önbellekte tutulur.

Oyunlar

Parametre
category bir kategori (slug değeri)
kind original (özgün oyun), cpc (Amstrad CPC remake'i), port (taşıma)
order[rating], order[plays], order[publishedAt], order[title] sıralama, asc ya da desc; eşitliği bozmak için art arda birkaçı. Varsayılan: en yeniler önce
page, itemsPerPage sayfa başına 30 oyun, en fazla 100
curl -g -H 'Accept: application/json' 'https://<bu site>/api/games?category=arcade&order[rating]=desc'

Her oyun:

Alan
slug, title, description
category, kind kategorisi (slug), proje türü
author yazarı (GitHub kullanıcı adı)
rating, ratings 5 üzerinden ortalama puanı (oy yoksa null), oy sayısı
plays başlatılan oyun sayısı
engine, publishedAt JumPHP motorunun sürümü, son yayınlanma tarihi
forkOf fork'u olduğu oyun, yoksa null
url, play, source sayfası, tam ekran oyun, gezilebilir kodu
image 640 × 360 görseli (yoksa null)
repository, manifest GitHub deposu, yayınlanan dosyalarının listesi (JumPHP'nin uzak modu)

Puana göre sıralama oyunlar sayfasındakiyle aynıdır: bir oyunun az oyu olduğu sürece ortalama 3'e doğru çekilir (üç hayalet oy), böylece tek bir 5/5, birçok 4,5'in önüne geçmez.

Sayfalar ve JSON-LD

Düz JSON'da (Accept: application/json) bir liste bir dizidir. JSON-LD'de (Accept: application/ld+json, varsayılan biçim) ayrıca toplam sayıyı (totalItems) ve sayfaların adreslerini (view.next, view.last) verir:

{
  "@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" }
}

Hatalar: var olmayan (ya da artık listelenmeyen) bir oyun ya da kategori için 404, geçersiz bir parametre için 422 (kind=zzz), Problem Details biçiminde (application/problem+json).