Files
novelasvm/docs/API.md

1.9 KiB

Catalogo global

GET /games.json

Devuelve el catalogo completo de novelas publicadas.

{
  "games": [
    {
      "slug": "demo",
      "title": "The Question",
      "subtitle": "Demo oficial de Ren'Py",
      "engine": "renpy",
      "description": "...",
      "cover": "/games/demo/web-presplash.jpg",
      "version": "7.0",
      "author": "Ren'Py Team",
      "createdAt": "2026-06-14T10:35:09Z",
      "entryPoint": "/games/demo/index.html",
      "coopCoep": true
    }
  ],
  "updatedAt": "2026-06-14T22:07:10Z",
  "version": "1.0"
}

Metadatos por juego

GET /games//game.json

Generado por build-novela.sh. Contiene metadatos y configuracion del motor.

Campo Tipo Descripcion
slug string Identificador URL-friendly
title string Titulo mostrado
subtitle string Subtitulo opcional
engine string Motor: renpy, unity, web, onscripter, umineko-ru
description string Descripcion corta
cover string URL de la portada
version string Version del juego
author string Autor
createdAt string ISO Fecha de publicacion
entryPoint string URL para jugar
coopCoep boolean Si requiere headers COOP/COEP

meta.json de entrada

Archivo opcional en /opt/novelas/projects/<slug>/meta.json:

{
  "title": "Mi Novela",
  "subtitle": "Subtitulo",
  "description": "Descripcion.",
  "author": "Autor",
  "version": "1.0",
  "cover": "/games/mi-novela/cover.jpg"
}

Headers HTTP

COOP/COEP (solo Ren'Py)

Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp

Se aplican mediante snippets en /etc/nginx/snippets/novelas-games/<slug>.conf.

Cache

  • games.json y game.json: no-store, no-cache, must-revalidate.
  • Assets estaticos: public, immutable, 30 dias.