Passa al contenuto principale

Route HTTP principali

Questa pagina costituisce il contratto operativo tra playroll-ui e playroll-cpp per l'API core su localhost.

Il renderer non deve chiamare queste route direttamente. playroll-ui chiama il core dal processo main di Electron attraverso handler IPC tipizzati, e le richieste verso il core devono includere gli header di session-auth UI/core, a meno che non sia esplicitamente abilitato un bypass per i test locali.

Stato dell'inventario delle route

L'handoff della Paper UI non introduce attualmente una nuova route HTTP su localhost. playroll-ui continua a comunicare con playroll-cpp attraverso la stessa superficie IPC del main process e gli stessi percorsi dell'API core.

Il lavoro di integrazione è quindi lavoro contrattuale: forma del payload, codici di motivo stabili, semantica del ciclo di vita, autenticazione delle route, garanzie di ordinamento e comportamento del read-model della UI.

Lavoro contrattuale che conta

Quando l'inventario delle route non cambia, il lavoro rischioso non consiste nell'aggiungere un URL. Consiste nell'assicurarsi che entrambe le parti concordino sul significato di ciascuna route.

AreaRequisito contrattuale
Identità della sessione di registrazioneUna singola sessione di registrazione possiede gli artefatti MP4, CSV degli input e JSON dei metadati. La cronologia UI raggruppa per recording_session / recording_session_id, ricorrendo al legacy session_id solo quando necessario.
Motivi terminaliLe righe di cronologia fallite o non conteggiate devono riportare un motivo stabile (reason, error_message, o un campo normalizzato equivalente).
Ciclo di vita del gioco selezionatoIl gioco selezionato è l'unico gioco il cui processo/finestra dovrebbe essere monitorato per la registrazione. Cambiare gioco rilascia il lavoro di monitoraggio precedente.
Stato del recorder/api/recorder/status deve descrivere il ciclo di vita del gioco selezionato in modo sufficientemente chiaro da consentire all'island di transitare tra gli stati idle, ready, recording, paused e blocked.
Avvisi sull'ambienteGli avvisi di /api/environment/check necessitano di codici stabili affinché la UI possa sopprimere o raggruppare casi specifici in modo deterministico.
Hardening di localhostTutte le chiamate UI-to-core non di test devono essere rifiutate in assenza degli header di session-auth attesi.
Cronologia degli uploadLa cronologia è un vero read model proveniente da core/SQLite in modalità normale; i dati mock sono solo per il dev-preset.

Route consumate dalla UI

Queste sono le route attualmente chiamate dall'IPC del main process di playroll-ui.

MethodRouteScopo UINote contrattuali
GET/api/statusFallback/read model generale dello stato core.Deve includere uno stato nested del recorder sufficiente per il fallback legacy da /api/recorder/status.
GET/api/recorder/statusStato corrente di recorder/island/sessione.Deve esporre il gioco selezionato, lo stato di detection, la fase recording/paused, i timing e l'eventuale errore UI terminale.
POST/api/record/startAvvia la registrazione per il gioco selezionato.Deve applicare auth, vincoli di gioco selezionato, gate di avvio e restituire motivi di blocco stabili.
POST/api/record/stopFerma la registrazione corrente.Deve restituire successo o un rifiuto stabile come "not recording".
POST/api/record/pauseMette in pausa la registrazione corrente.Deve restituire motivi di rifiuto stabili quando la pausa non è consentita.
POST/api/record/resumeRiprende una registrazione in pausa.Deve restituire motivi di rifiuto stabili quando la ripresa non è consentita.
POST/api/overlay/toggleAttiva/disattiva l'overlay del recorder.Deve restituire lo stato di visibilità più un'eventuale direttiva di errore UI.
GET/api/uploader/statusStato dell'uploader e file in attesa.Deve includere lo stato paused/uploading, il file corrente, l'avanzamento, il conteggio dei pendenti e l'ultimo errore quando disponibile.
GET/api/uploader/historyRighe di attività/cronologia.Deve preservare separatamente l'id di riga e l'identità della sessione. recording_session raggruppa le righe MP4 + CSV + JSON; session_id è legacy/compatibile internamente. Le righe fallite necessitano di reason/error.
POST/api/uploader/actionComando dell'uploader come scan/pause/resume.Deve restituire l'azione accettata e un motivo di fallimento stabile.
GET/api/environment/checkControlli ambientali bloccanti/di avviso.I codici di warning/blocker devono essere stabili; la UI può sopprimere codici noti come multi-GPU.
GET/api/environment/adapterSnapshot dell'adapter hardware (vendor, nome GPU, driver NVENC).Usata dallo step system-check dell'onboarding per mostrare un messaggio preciso sulla versione del driver.
GET/api/hw/snapshotSnapshot HW canonico — system (CPU/RAM/OS) e gpus[] (vendor/device/driver/VRAM).Stesso payload che il core scrive in ogni _meta.json::hardware di ogni registrazione. Consumato dal flusso di bug report in-app; uno schema unico tra metadata delle registrazioni, bug report e inventario device_hw_snapshots.
GET/api/settingsLettura delle impostazioni core.La risposta deve tollerare campi mancanti ma essere stabile per le impostazioni salvate.
PUT/api/settingsAggiorna le impostazioni core.Deve fare il merge senza eliminare impostazioni non correlate.
GET/api/sound-cuesLettura dei binding dei sound cue.Lo snapshot deve essere deterministico e includere lo stato enabled per ciascun cue.
PUT/api/sound-cuesSalva i binding dei sound cue.Deve validare gli id dei cue e i percorsi dei file.
POST/api/sound-cues/previewAnteprima di un sound cue.Non deve persistere stato.
GET/api/encodersLettura degli encoder disponibili.Deve includere l'encoder selezionato e i motivi di indisponibilità.
POST/api/encoders/selectSeleziona l'encoder.Deve rifiutare gli encoder non disponibili con un motivo stabile.
GET/api/monitor/targetsLettura dei target di monitoraggio gioco/processo.Deve riflettere i giochi installati noti al core e i vincoli del gioco selezionato.
PUT/api/monitor/targetsSostituisci/sincronizza i target di monitoraggio.Deve essere indipendente dalla macchina ed evitare percorsi locali hardcoded.
POST/api/monitor/rescanForza il rescan dei target di monitoraggio.Deve essere idempotente e sicuro mentre la UI è aperta.
PUT/api/monitor/selectionImposta il gioco selezionato.Cambiare la selezione deve rilasciare i monitor per il gioco precedentemente selezionato.
POST/api/settings-enforcement/applyApplica l'enforcement delle impostazioni per gioco.Deve essere confinato all'id gioco/store selezionato.
POST/api/settings-enforcement/restoreRipristina le impostazioni dopo una sessione.Deve essere sicuro da chiamare anche se nulla è stato applicato.
GET/api/settings-enforcement/statusLettura dello stato di enforcement, opzionalmente per gioco.Supporta query tramite game_store_id.
PUT/api/settings-enforcement/sync-targetsSincronizza i target del settings-enforcement.Deve restare allineato con i target del monitor e con il gioco selezionato.
POST/api/debug/toastCiclo di notifiche per dev/debug.Route di debug; deve restare un comportamento non rivolto al giocatore.
POST/api/debug/overlay/cycleCiclo dell'overlay per dev/debug.Route di debug; deve restare un comportamento non rivolto al giocatore.

Inventario completo delle route del core

Queste sono le route esposte da playroll-cpp sul branch di integrazione.

Runtime e documentazione

MethodRouteNote
GET/healthProbe di health.
GET/pingProbe di liveness leggero.
POST/heartbeatHeartbeat UI/core.
POST/shutdownComando di shutdown del core.
GET/api/docsPagina di documentazione dell'API core integrata.

Auth

MethodRouteNote
POST/auth/tokenFornisce il token di auth al core.
POST/api/authRoute API correlata all'auth esposta dal core.

Recorder e overlay

MethodRouteNote
GET/api/statusEnvelope di stato generale.
GET/api/recorder/statusStato specifico del recorder.
POST/api/record/startAvvia la registrazione.
POST/api/record/stopFerma la registrazione.
POST/api/record/pauseMette in pausa la registrazione.
POST/api/record/resumeRiprende la registrazione.
POST/api/overlay/toggleAttiva/disattiva la visibilità dell'overlay.

Libreria giochi, target di monitoraggio e selezione

MethodRouteNote
GET/api/gamesElenco dei giochi del core.
POST/api/games/refreshAggiorna i giochi noti.
POST/api/games/rescanRescansione dei giochi.
GET/api/monitor/targetsLettura dei target di monitoraggio.
PUT/api/monitor/targetsSostituisce i target di monitoraggio.
POST/api/monitor/rescanRescansione dei target di monitoraggio.
PUT/api/monitor/selectionImposta il gioco selezionato per il monitoraggio processo/finestra.

Impostazioni ed enforcement

MethodRouteNote
GET/api/settingsLettura delle impostazioni.
PUT/api/settingsAggiornamento delle impostazioni.
GET/api/settings-enforcement/statusLettura dello stato di enforcement.
POST/api/settings-enforcement/applyApplica le impostazioni enforced.
POST/api/settings-enforcement/restoreRipristina le impostazioni enforced.
PUT/api/settings-enforcement/sync-targetsSincronizza i target di enforcement.
GET/api/settings/audio-cuesRoute legacy delle impostazioni degli audio cue.
PUT/api/settings/audio-cuesRoute legacy di aggiornamento delle impostazioni degli audio cue.
GET/api/sound-cuesLettura dello snapshot dei sound cue.
PUT/api/sound-cuesAggiornamento dello snapshot dei sound cue.
POST/api/sound-cues/previewAnteprima di un sound cue.
GET/api/hotkeysLettura delle impostazioni degli hotkey.
PUT/api/hotkeysAggiornamento delle impostazioni degli hotkey.
GET/api/preprocessor/configLettura della configurazione del preprocessor.
PUT/api/preprocessor/configAggiornamento della configurazione del preprocessor.

Read model di uploader e validazione

MethodRouteNote
GET/api/uploader/statusLettura dello stato dell'uploader.
GET/api/uploader/historyLettura delle righe recenti di cronologia caricate/fallite.
POST/api/uploader/actionControllo dell'uploader.
GET/api/uploader/configLettura della configurazione dell'uploader.
PUT/api/uploader/configAggiornamento della configurazione dell'uploader.
GET/api/environment/checkLettura dei blocker e degli avvisi ambientali.
GET/api/environment/adapterLettura dello snapshot dell'adapter HW primario (vendor + versioni driver).
GET/api/hw/snapshotLettura dello snapshot HW canonico (stessa forma di _meta.json::hardware).