Une documentation interactive de l'API est disponible via Swagger. Vous pouvez y accéder à l'adresse suivante :
Swagger UI : http://localhost:8000/swagger/
L'API utilise JSON Web Tokens (JWT) pour l'authentification. Voici comment obtenir et utiliser un token d'accès.
Envoyez une requête POST à /api/token/ avec les identifiants de l'utilisateur.
POST /api/token/
Content-Type: application/json
{
"username": "votre_nom_utilisateur",
"password": "votre_mot_de_passe"
}{
"refresh": "token_de_refresh",
"access": "token_d_acces"
}Pour accéder aux endpoints protégés, incluez le token d'accès dans le header Authorization.
Authorization: Bearer token_d_accesLorsque le token d'accès expire, utilisez le token de rafraîchissement pour en obtenir un nouveau.
POST /api/token/refresh/
Content-Type: application/json
{
"refresh": "token_de_refresh"
}{
"access": "nouveau_token_d_acces"
}Requête :
GET /api/categories/
Authorization: Bearer token_d_accesRéponse :
[
{
"id": 1,
"name": "Électronique",
"description": "Catégorie pour les produits électroniques",
"active": true,
"date_created": "2023-10-01T12:00:00Z",
"date_updated": "2023-10-01T12:00:00Z"
},
{
"id": 2,
"name": "Vêtements",
"description": "Catégorie pour les vêtements",
"active": true,
"date_created": "2023-10-01T12:00:00Z",
"date_updated": "2023-10-01T12:00:00Z"
}
]Requête :
POST /api/categories/
Authorization: Bearer token_d_acces
Content-Type: application/json
{
"name": "Électronique",
"description": "Catégorie pour les produits électroniques",
"active": true
}Réponse :
{
"id": 1,
"name": "Électronique",
"description": "Catégorie pour les produits électroniques",
"active": true,
"date_created": "2023-10-01T12:00:00Z",
"date_updated": "2023-10-01T12:00:00Z"
}Requête :
GET /api/categories/1/
Authorization: Bearer token_d_accesRéponse :
{
"id": 1,
"name": "Électronique",
"description": "Catégorie pour les produits électroniques",
"active": true,
"date_created": "2023-10-01T12:00:00Z",
"date_updated": "2023-10-01T12:00:00Z"
}Requête :
PUT /api/categories/1/
Authorization: Bearer token_d_acces
Content-Type: application/json
{
"name": "Électronique Modifié",
"description": "Nouvelle description",
"active": false
}Réponse :
{
"id": 1,
"name": "Électronique Modifié",
"description": "Nouvelle description",
"active": false,
"date_created": "2023-10-01T12:00:00Z",
"date_updated": "2023-10-01T12:00:00Z"
}Requête :
DELETE /api/categories/1/
Authorization: Bearer token_d_accesRéponse :
HTTP 204 No ContentRequête :
GET /api/products/
Authorization: Bearer token_d_accesRéponse :
[
{
"id": 1,
"name": "Smartphone",
"description": "Un smartphone haut de gamme",
"active": true,
"category": 1,
"date_created": "2023-10-01T12:00:00Z",
"date_updated": "2023-10-01T12:00:00Z"
}
]Requête :
POST /api/products/
Authorization: Bearer token_d_acces
Content-Type: application/json
{
"name": "Smartphone",
"description": "Un smartphone haut de gamme",
"active": true,
"category": 1
}Réponse :
{
"id": 1,
"name": "Smartphone",
"description": "Un smartphone haut de gamme",
"active": true,
"category": 1,
"date_created": "2023-10-01T12:00:00Z",
"date_updated": "2023-10-01T12:00:00Z"
}Requête :
GET /api/products/1/
Authorization: Bearer token_d_accesRéponse :
{
"id": 1,
"name": "Smartphone",
"description": "Un smartphone haut de gamme",
"active": true,
"category": 1,
"date_created": "2023-10-01T12:00:00Z",
"date_updated": "2023-10-01T12:00:00Z"
}Requête :
PUT /api/products/1/
Authorization: Bearer token_d_acces
Content-Type: application/json
{
"name": "Smartphone Modifié",
"description": "Nouvelle description",
"active": false,
"category": 1
}Réponse :
{
"id": 1,
"name": "Smartphone Modifié",
"description": "Nouvelle description",
"active": false,
"category": 1,
"date_created": "2023-10-01T12:00:00Z",
"date_updated": "2023-10-01T12:00:00Z"
}Requête :
DELETE /api/products/1/
Authorization: Bearer token_d_accesRéponse :
HTTP 204 No ContentRequête :
GET /api/articles/
Authorization: Bearer token_d_accesRéponse :
[
{
"id": 1,
"name": "iPhone 15",
"description": "Dernier modèle d'iPhone",
"active": true,
"price": "999.99",
"product": 1,
"date_created": "2023-10-01T12:00:00Z",
"date_updated": "2023-10-01T12:00:00Z"
}
]Requête :
POST /api/articles/
Authorization: Bearer token_d_acces
Content-Type: application/json
{
"name": "iPhone 15",
"description": "Dernier modèle d'iPhone",
"active": true,
"price": "999.99",
"product": 1
}Réponse :
{
"id": 1,
"name": "iPhone 15",
"description": "Dernier modèle d'iPhone",
"active": true,
"price": "999.99",
"product": 1,
"date_created": "2023-10-01T12:00:00Z",
"date_updated": "2023-10-01T12:00:00Z"
}Requête :
GET /api/articles/1/
Authorization: Bearer token_d_accesRéponse :
{
"id": 1,
"name": "iPhone 15",
"description": "Dernier modèle d'iPhone",
"active": true,
"price": "999.99",
"product": 1,
"date_created": "2023-10-01T12:00:00Z",
"date_updated": "2023-10-01T12:00:00Z"
}Requête :
PUT /api/articles/1/
Authorization: Bearer token_d_acces
Content-Type: application/json
{
"name": "iPhone 15 Pro",
"description": "Modèle haut de gamme",
"active": false,
"price": "1199.99",
"product": 1
}Réponse :
{
"id": 1,
"name": "iPhone 15 Pro",
"description": "Modèle haut de gamme",
"active": false,
"price": "1199.99",
"product": 1,
"date_created": "2023-10-01T12:00:00Z",
"date_updated": "2023-10-01T12:00:00Z"
}Requête :
DELETE /api/articles/1/
Authorization: Bearer token_d_accesRéponse :
HTTP 204 No ContentPour exécuter les tests unitaires, utilisez la commande suivante :
python manage.py test