README.md 2,85 ko
Newer Older
Jérémy DEZETREE's avatar
Jérémy DEZETREE a validé
# Server

Un backend développé à l'aide du framework Python, FastAPI.

## Structure de l'API

| Routeur  | Chemin              | Méthode | Description                                                        |
|----------|---------------------|---------|--------------------------------------------------------------------|
| Customer | /                   | GET     | Renvoie la liste des utilisateurs                                  |
|          | /                   | POST    | Ajoute d'un utilisateur                                            |
|          | /{customer_id}      | GET     | Renvoie les informations d'un utilisateur                          |
| Items    | /                   | GET     | Renvoie la liste des objets                                        |
|          | /                   | POST    | Ajoute un objet                                                    |
|          | /                   | DELETE  | Supprime un objet                                                  |
|          | /{item_id}          | GET     | Renvoie les informations d'un objet                                |
| Payment  | /                   | GET     | Renvoie la liste des paiements                                     |
|          | /                   | POST    | Créée un paiement                                                  |
|          | /{customer_id}      | GET     | Renvoie les paiements liés à un utilisateur                        |
|          | /check/{payment_id} | POST    | Valide le paiement si réalisé et renvoie la liste des objets payés |

## Configuration de l'API

Ajouter les variables d'environnement en vous aidant du fichier `.env.example` dans un fichier nommé `.env`.

La clé publique ainsi que la privée sont disponibles depuis le dashboard de Stripe.

Lancement du serveur :

```shell
docker compose up --build
```

Une fois lancé, accedez à la documentation de l'API à cette adresse : `http://localhost:{FASTAPI_PORT}/docs`.

Pour arrêter et supprimer le serveur :

```shell
docker compose down
```

## Avant d'utiliser le client

Pour que l'exemple du client puisse fonctionner correctement, il faut exécuter les commandes suivantes.

- Ajouter un `item` **banane** :
```curl
curl -X 'POST' \
  'http://localhost:8000/items/' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "banane",
  "price": 199
}'
```

La réponse attendue est :
```json
{
  "name": "banane",
  "price": 199,
  "id": 1
}
```

- Ainsi qu'un `customer`. L'identifiant unique généré du `customer` correspond à l'identifiant Stripe du client :
```curl
curl -X 'POST' \
  'http://localhost:8000/customers/' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "email": "example@example.xyz"
}'
```

La réponse attendue est :
```json
{
  "id": "cus_OmpJZapHkM2keT",
  "email": "example@example.xyz"
}
```