VecchioServer è un server RESTful per postare su vecchiochan.com
Inizia »
Release
·
Segnala Bug
·
Richiedi Feature
VecchioServer espone un'API che segue la specifica OpenAPI e include una UI Swagger per testare l'API e consultare la documentazione.
Il server astrae i dettagli dell'invio del form e della gestione delle richieste http a vecchiochan utilizzando vecchioclient.
Attraverso gli endpoint esposti /thread
e /reply
puoi:
- Creare nuovi thread su board specifiche
- Rispondere a thread già esistenti
E' possibile cambiare la porta su cui il server rimane in ascolto, personalizzare l'header User-Agent
utilizzato dal client interno e abilitare il logging dettagliato (vedi Avvio del server).
Nessuna funzionalità di lettura viene fornita poiché NPFchan espone già l'API di vichan.
VecchioServer è disponibile per Windows, GNU/Linux e MacOS.
L'eseguibile dell'ultima versione si può scaricare da qui.
Per semplicità si assume che vecchioserver
sia il nome dell'eseguibile.
Per avviare il server:
# windows
vecchioserver
# linux / macos
./vecchioserver
Sono disponibili le seguenti opzioni:
-p
o--port
: Porta personalizzata per eseguire il server (default:8080
).-u
o--user-agent
: Header User-Agent personalizzato utilizzato dal client interno.-v
o--verbose
: Abilita il logging dettagliato per log più specifici.
Esempio:
# windows
vecchioserver -p 9000 -u "MyCustomAgent" -v
Il server verrà eseguito sulla porta 9000
, utilizzerà "MyCustomAgent" come header User-Agent
nelle richieste del client interno e abiliterà il logging dettagliato.
Una volta che il server è in esecuzione, puoi accedere alla documentazione Swagger all'indirizzo:
http://localhost:8080/swagger/index.html
Questa pagina fornisce un'interfaccia intuitiva per esplorare l'API e testare le richieste.
Di seguito alcuni esempi su come utilizzare l'API.
Si assume che la porta sia quella di default (8080
).
Fai riferimento alla sezione Schemas
della documentazione Swagger per vedere tutti i campi disponibili e la loro descrizione.
Come negli esempi qui sotto, i campi non obbligatori possono essere omessi.
-
Creare un thread può essere fatto inviando una richiesta
POST
all'endpoint/thread
:curl -X 'POST' \ 'http://localhost:8080/thread' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d '{ "board": "b", "body": "Questo è un nuovo thread sulla board /b/", "files": [ "C:\\path\\to\\file.jpg" ] }'
board è l'unico campo obbligatorio, ma tieni presente che, poiché ogni board ha le sue impostazioni, potrebbero essere necessari più campi per postare (ad esempio, non è possibile postare un nuovo thread senza embed né file su /b/).
-
Per pubblicare una risposta, invia una richiesta
POST
all'endpoint/reply
:curl -X 'POST' \ 'http://localhost:8080/reply' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d '{ "board": "b", "body": "Questa è una nuova risposta al thread #1 della board /b/", "files": [ "C:\\path\\to\\file1.mp4", "C:\\path\\to\\file2.webm" ], "thread": 1 }'
board e thread sono gli unici campi obbligatori, ma tieni presente che, poiché ogni board ha le sue impostazioni, potrebbero essere necessari più campi per postare.
Per compilare il progetto:
-
Assicurati di avere installato Go.
-
Clona il repository con git:
git clone https://github.com/anond0rf/vecchioserver.git
-
Spostati nella directory del progetto:
cd vecchioserver
-
Opzionale: se intendi modificare il file
api/openapi.yaml
, devi installare oapi-codegen ed eseguire il seguente comando per rigenerare i tipi OpenAPI, il server e la specifica:oapi-codegen -generate types,server,spec -o internal/handlers/server.gen.go -package handlers api/openapi.yaml
-
Compila il progetto:
go build ./cmd/vecchioserver
Verrà generato un file eseguibile nella directory principale del progetto.
VecchioServer è concesso in licenza sotto la Licenza LGPL-3.0.
Questo significa che puoi usare, modificare e distribuire il software, a condizione che eventuali versioni modificate siano anch'esse concesse in licenza sotto la LGPL-3.0.
Per maggiori dettagli, consulta il testo completo della licenza nel file LICENSE.
Copyright © 2024 anond0rf