You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.8 KiB

PYTHON API WITH FLASK

Base for create an API for french quotes in flask with SQL Alchemy for backend

CONFIGURATION 🔧

  • In app/app.py configure admin_api_key and user_api_key

UTILISATION 🏁

  • créer un evironnement virtuel:
sudo apt install python3-venv
python3 -m venv venv
  • Installation des dépendances
pip install -r requirements.txt
cd app
flask run

Récupérer l'api_key admin qui s'affiche dans le terminal

  • Ajouter les deux citations test:
curl -X POST -H "Content-Type: application/json; charset=utf-8" -H "API-Key: <admin_api_key>" -d '{"auteur": "François de La Rochefoucauld", "citation": "Il est plus aisé detre sage pour les autres que de letre pour soi-même."}' http://localhost:5000/api/citations/add

curl -X POST -H "Content-Type: application/json; charset=utf-8" -H "API-Key: <admin_api_key>" -d '{"auteur": "Pierre De Montesquieu", "citation": "On ne justifie pas une injustice par une autre."}' http://localhost:5000/api/citations/add
  • Ajouter une liste de citations:
curl -X POST -H "Content-Type: application/json; charset=utf-8" -H "API-Key: <admin_api_key>" -d '{
  "citations": [
    {"auteur": "Auteur1", "citation": "Citation1"},
    {"auteur": "Auteur2", "citation": "Citation2"},
    {"auteur": "Auteur3", "citation": "Citation3"}
  ]
}' http://localhost:5000/api/citations/add_list
  • API admin:
curl -H "API-Key: <admin_api_key>" http://localhost:5000/api/citations/all | jq
curl -H "API-Key: <admin_api_key>" http://localhost:5000/api/citations/random | jq
  • Ajouter un utilisateur non admin:
curl -X POST -H "Content-Type: application/json; charset=utf-8" -H "API-Key: <admin_api_key>" -d '{"username": "nouvel_utilisateur", "is_admin": false}' http://localhost:5000/api/users/add
  • Supprimer un utilisateur:
curl -X DELETE -H "Content-Type: application/json; charset=utf-8" -H "Api-Key: <admin_api_key>" -d '{"username": "nom_utilisateur_a_supprimer"}' http://localhost:5000/api/users/delete

Récupérer l'api_key qui s'affiche pour le nouvel utilisateur

  • API user:
curl -H "API-Key: <nouvel_utilisateur_api_key>" http://localhost:5000/api/citations/random | jq

💡 Utiliser le script ajout_citations.sh pour ajouter plusieurs citations en une fois

DOCKER 🐳

  • Construire l'image Docker et démarrer un conteneur:
docker build -t api:1.0 .
docker run -d -p 8000:8000 api:1.0

DOCKER COMPOSE

  • Démarrer l'API:
docker-compose up -d

CLIENT ANDROID 📱

Exemple de client Android

TO DO 📑

  • fonction check si citation existe deja
  • fonction add user
  • test added user
  • fonction ajout_citations(list)
  • tester Docker
  • gérer l'UTF8
  • endpoint del user