82fcc75429
close #3
56 lines
1.4 KiB
Markdown
56 lines
1.4 KiB
Markdown
Componente centrale del sistema pizzicaroli. tiene i conti.
|
|
espone HTTP e WebSocket.
|
|
|
|
Alcune API richiedono autenticazione.
|
|
|
|
Il docker incluso è solo per comodità di sviluppo, non è strettamente necessario.
|
|
|
|
## Concetti
|
|
|
|
### Contatori multipli
|
|
|
|
Il codice gestisce più di un contatore, per generalità, anche se non è chiaro se questa cosa ci servirà. I
|
|
contatori partono da 0, quindi in genere useremo sempre 0.
|
|
|
|
### Storage
|
|
|
|
Il sistema ha un suo storage, in modo che al riavvio i contatori ripartano da dove erano.
|
|
|
|
## HTTP API
|
|
|
|
`GET /counter/0` ti dà il valore
|
|
|
|
`POST /counter/0/increment` incrementa, ma richiede basic-auth
|
|
|
|
## WebSocket API
|
|
|
|
`/ws/counter/0` ti dà il valore e ti riaggiorna ogni volta che questo cambia. Ignora ogni messaggio in
|
|
ingresso.
|
|
|
|
# Lanciare
|
|
|
|
## Docker compose
|
|
|
|
```
|
|
docker-compose up
|
|
```
|
|
|
|
## Debian Bullseye
|
|
|
|
Just install a few packages from the standard repositories, and you're set. No pip, virtualenv, …
|
|
|
|
```
|
|
apt install python3-fastapi python3-dotenv uvicorn
|
|
env QUEUES_NUMBER=2 uvicorn pizzicore:app --reload --port 8000 --host 0.0.0.0
|
|
```
|
|
|
|
In the snippet above, you can see how to set variables on the commandline. See `pizzicore.env.sample` for a list of settings.
|
|
|
|
You can also create a `pizzicore.env` file (named exactly like that) as a configuration method.
|
|
|
|
Environment variables take precedence over configuration files.
|
|
|
|
## TODO
|
|
|
|
* configurazione
|
|
* esempi d'uso
|