Ce projet consiste à implémenter une API Django Rest Framework, pour mettre à disposition d'un service web les ressources suivantes :
-
User
: Définit les utilisateurs, avec leur âge, leur choix de consentement et leurs identifiant. -
Contributor
: Définit les utilisateurs qui sont contributeurs d’un projet spécifique… Un utilisateur peut contribuer à plusieurs projets, et un projet peut avoir plusieurs contributeurs. Le contributeur peut créer trois types de ressources: le project, l’issue et le comment. -
Project
: Définit les projets d’une application cliente. C’est la ressource principale utilisée par le client. -
Issue
: Définit les problèmes d'un projet, ainsi que son statut, sa priorité, son attribution (utilisateur auquel le problème est affecté), sa balise (bug, tâche, amélioration). Un project peut posséder plusieurs issues, mais une issue n’est rattachée qu’à un seul project. -
Comment
: Définit les commentaires d'un problème (issue) particulier. Une issue peut avoir plusieurs comments, mais un comment n’est rattaché qu’à une seule issue.
Une base de donnée db.sqlite3
est incluse au dépôt et contient des données générées aléatoirement tels que :
- un ensemble d'utilisateurs (mot de passe par défaut : password)
- un ensemble de projets et de contributeur
- un ensemble d'issues
- un ensemble de comments
Le programme utilise plusieurs librairies externes, et modules de Python, qui sont repertoriés dans les fichiers Pipfile
et Pipfile.lock
Pour configuer l'environnement, commencez par ouvrir un terminal à la racine du projet, et suivez les étapes suivantes :
-
installez pipenv sur votre environnement global :
pip install pipenv
-
Installez les packages spécifiés dans le projet :
pipenv install
-
Installez l'environnement virtuel en vous référant à la section précédante.
-
Ouvrez un terminal à la racine du projet, et entrez la commande suivante :
pipenv run python ./manage.py runserver
L'authentification à l'API se fait au travers de djangorestframework-simplejwt.
L'obtention d'un access token se fait avec la requete suivante, et devra être fourni dans les en-têtes de chaque requêtes :
POST http://127.0.0.1:8000/api/token/
{
"username": "username",
"password": "password"
}
Response:
{
"refresh": "eyJhbGc...",
"access": "eyJhbGci..."
}
Le token reçu devra être passé dans les en-tête des requetes.
l'ensemble des tests disponible peuvent être lancés en suivant les étapes suivantes :
-
Activez l'environnement virtuel en vous référant à la section précédante.
-
Ouvrez un terminal à la racine du projet, et entrez la commande suivante :
pipenv run python ./manage.py test
```
pipenv run python ./manage.py runscript dummy_data
```