24 lines
1.1 KiB
Markdown
24 lines
1.1 KiB
Markdown
# Documentation du projet sdk_storage
|
|
|
|
Ce dossier documente l'API HTTP, l'architecture et les décisions techniques.
|
|
|
|
## API
|
|
|
|
- POST `/store` : stocke une valeur hex pour une clé hex 64 chars, `ttl` optionnel (secondes). Quand `--permanent` est passé au binaire, l'absence de `ttl` rend la donnée permanente.
|
|
- GET `/retrieve/:key` : retourne `{ key, value }` où `value` est encodée en hex.
|
|
|
|
## Architecture
|
|
|
|
- Service `StorageService` (voir `src/lib.rs`) encapsule la logique de stockage, récupération et nettoyage TTL.
|
|
- `src/main.rs` démarre Tide avec état `StorageService` et une boucle de nettoyage périodique (60s).
|
|
|
|
## REX technique
|
|
|
|
- Docker
|
|
- Build local: `docker build -t sdk_storage:local .`
|
|
- Run: `docker run --rm -p 8081:8081 -v $PWD/storage:/app/storage sdk_storage:local`
|
|
- Par défaut `--permanent` est activé via CMD, override possible: `docker run ... sdk_storage -- --permanent`
|
|
|
|
- Refactor initial de la logique depuis `main.rs` vers `lib.rs` pour testabilité et séparation des responsabilités.
|
|
- Durées TTL maintenant validées dans le handler, calcul d'expiration converti en `SystemTime` avant l'appel service.
|