Initial commit: NovelasVM platform with multi-engine support and Umineko Web integration
This commit is contained in:
79
docs/API.md
Normal file
79
docs/API.md
Normal file
@@ -0,0 +1,79 @@
|
||||
|
||||
## Catalogo global
|
||||
|
||||
### GET /games.json
|
||||
|
||||
Devuelve el catalogo completo de novelas publicadas.
|
||||
|
||||
```json
|
||||
{
|
||||
"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/<slug>/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`:
|
||||
|
||||
```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.
|
||||
Reference in New Issue
Block a user