SDK Python pour accéder à l’API GoodReads
Project description
📚 Mauribooks SDK
Un SDK Python moderne et intuitif pour interagir avec l'API GoodReads/Mauribooks, spécialement conçu pour les professionnels de la data.
Fonctionnalités principales
- Simple et intuitif : API claire et documentée
- Multi-format : Support natif de Pydantic, dictionnaires et DataFrames Pandas
- Flexible : Compatible avec APIs locales et déployées
- Performant : Optimisé pour l'analyse de données
- Type-safe : Validation des données avec Pydantic
- Data-friendly : Conçu pour les workflows d'analyse
Installation rapide
pip install mauribooks
Prérequis : Python 3.10+
Démarrage rapide
Configuration initiale
from mauribooks import BookClient, BookConfig
# Configuration avec l'API hébergée
config = BookConfig(book_base_url="https://books-project-api.onrender.com")
client = BookClient(config=config)
# Vérification de la connexion
status = client.health_check()
print(status) # {"message": "API Goodreads opérationnelle"}
Exemples d'utilisation
Récupérer un livre spécifique
# Récupération avec validation Pydantic
book = client.get_book(1)
print(f"Titre: {book.title}")
print(f"Auteur: {book.author}")
print(f"Note moyenne: {book.average_rating}")
Analyse de données avec Pandas
# Export direct vers DataFrame pour l'analyse
df_books = client.list_books(limit=100, output_format="pandas")
# Analyse statistique immédiate
print(df_books.describe())
print(f"Top 5 des genres: {df_books['genre'].value_counts().head()}")
# Compatible avec tous vos outils data favoris
import matplotlib.pyplot as plt
df_books['average_rating'].hist()
plt.show()
Flexibilité des formats de sortie
# Format Pydantic (défaut) - Type-safe et validé
books_pydantic = client.list_books(limit=10)
# Format dictionnaire - Pour l'intégration avec APIs
books_dict = client.list_books(limit=10, output_format="dict")
# Format Pandas - Pour l'analyse de données
books_df = client.list_books(limit=10, output_format="pandas")
API Reference
Méthodes principales
| Méthode | Description | Formats supportés |
|---|---|---|
health_check() |
Vérification de l'état de l'API | dict |
get_book(id) |
Récupération d'un livre par ID | Pydantic |
list_books(**kwargs) |
Liste des livres avec filtres | pydantic, dict, pandas |
list_authors(**kwargs) |
Liste des auteurs | pydantic, dict, pandas |
list_ratings(**kwargs) |
Liste des évaluations | pydantic, dict, pandas |
Paramètres de configuration
config = BookConfig(
book_base_url="https://books-project-api.onrender.com",
timeout=30, # Timeout des requêtes (optionnel)
)
Développement local
Pour tester avec une instance locale :
# Configuration pour développement local
config = BookConfig(book_base_url="http://localhost:8000")
client = BookClient(config=config)
# Même API, même simplicité
local_books = client.list_books(limit=5, output_format="pandas")
Cas d'usage
Pour les Data Scientists
# Pipeline d'analyse complet
df = client.list_books(limit=1000, output_format="pandas")
analysis = df.groupby('genre').agg({
'average_rating': 'mean',
'ratings_count': 'sum'
}).round(2)
Pour l'intégration API
# Format dictionnaire pour l'intégration
books_data = client.list_books(limit=50, output_format="dict")
Développement et contribution
Installation en mode développement
git clone https://github.com/Daouda-Ba/Books_Project_API.git
cd mauribooks
pip install -e ".[dev]"
Tests
pytest tests/
Roadmap
- Support des requêtes asynchrones
- Cache intelligent des données
- Export vers autres formats (JSON, CSV, Parquet)
- Interface CLI
- Documentation interactive
Public cible
- Data Scientists : Analyse et modélisation de données littéraires
- Data Analysts : Reporting et visualisation de métriques
- Développeurs Python : Intégration rapide d'APIs de livres
- Étudiants : Apprentissage de l'analyse de données
- Chercheurs : Études sur les tendances littéraires
Licence
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
Liens utiles
- API Production : https://books-project-api.onrender.com
- PyPI Package : https://pypi.org/project/mauribooks
- Documentation API : https://books-project-api.onrender.com/docs
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mauribooks-0.1.0.tar.gz.
File metadata
- Download URL: mauribooks-0.1.0.tar.gz
- Upload date:
- Size: 7.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ae7aa8a17cfff54c214411415db193f37ca65f216faf2b556b053722a5958d09
|
|
| MD5 |
b422bf58a4ac3cd50ccd74b09fd13312
|
|
| BLAKE2b-256 |
327881cbcd60361a96452a5ab81fd05f55c6c887b4f439c04bcc6c475e3e27a5
|
File details
Details for the file mauribooks-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mauribooks-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a734fba920f8b5b2618b5179f10055ad2b768d74842d3f6230de6f6f9fc8941
|
|
| MD5 |
3a32cbd85282772c1d1a8c4d08e64304
|
|
| BLAKE2b-256 |
5c2b476f459b79e464536ea7fb5c66f5e925c42ae347350f0211a6e6a3dc1442
|