API REST de l’explorateur
L’extension REST est un paquet Bake indépendant pour les inspecteurs et les
éditeurs. Ajoutez siecs_rest à l’application puis importez-le explicitement.
#include <siecs.h>#include <siecs_rest.h>
int main(void) { ecs_init(); ECS_MODULE_IMPORT(SiecsRest, { .port = 4040 }); ecs_progress(); ecs_fini();}#include <siecs/cpp.hpp>#include <siecs_rest.h>
ecs::init();ECS_MODULE_IMPORT(SiecsRest, { .port = 4040 });ecs::progress();ecs::fini();Le port par défaut est 4040. Le serveur est traité pendant ecs_progress()
et s’arrête avec le monde.
| Route | Rôle |
|---|---|
GET /health |
Vérifier que le serveur répond. |
GET /schema |
Lire les schémas des composants réfléchis. |
GET /entities |
Lister les entités racines. |
POST /entities |
Créer une entité. |
GET /entities/:index |
Lire le détail d’une entité. |
GET /entities/:index/children |
Lire ses enfants directs. |
PUT /entities/:index/components/:component |
Remplacer une valeur réfléchie. |
Explorer les entités
Section intitulée « Explorer les entités »La liste est volontairement légère pour construire un arbre :
type EntityListItem = { name: string; index: number; generation: number; hasChildren?: boolean;};Le détail ajoute le parent, la base IsA, les enfants et les valeurs de
composants réfléchies :
type EntityDetail = EntityListItem & { parent?: EntityListItem; isA?: EntityDetail; children: EntityListItem[]; components: EntityComponent[];};Construire un éditeur de composants
Section intitulée « Construire un éditeur de composants »/schema décrit les composants et leurs champs avec des types adaptés à une
interface, sans exposer les détails internes de la réflexion :
type Component = { id: number; name: string; isRelation: boolean; type: number; fields: { name: string; type: number }[];};
type EditorType = { id: number; name: string; editor: "boolean" | "number" | "object" | "string" | "entity" | "unsupported";};Un client charge d’abord le schéma, puis le détail de l’entité, rend ses contrôles et envoie la valeur complète du composant. Les composants sans métadonnées de réflexion restent utilisables par SIECS, mais ne peuvent pas être édités par l’explorateur.
PUT /entities/12/components/4Content-Type: application/json
{ "value": { "x": 10, "y": 20 } }La mise à jour est atomique au niveau du composant : aucune sémantique de patch partiel n’est imposée aux structures.
Déploiement
Section intitulée « Déploiement »Cette extension est faite pour les outils de développement locaux et les éditeurs. Ne l’exposez pas sur un réseau non fiable sans authentification, restriction de routage ou proxy dédié.