Cette API permet de créer, lire, mettre à jour et supprimer des annonces d'emploi dans une base de données PostgreSQL. Elle intègre également une fonctionnalité de scraping pour récupérer des annonces depuis un site externe.
- Python 3.x
- Flask
- flask_sqlalchemy
- pandas
- selenium
- SQLAlchemy
- PostgreSQL
-
Clonez le dépôt :
git clone https://github.com/EnesBrt/Job-Listings-Aggregator
-
Installez les dépendances :
pip install -r requirements.txt
-
Configurez votre base de données dans
app.py
etdata.py
.
Pour lancer l'API :
python app.py
L'API est accessible localement à l'adresse suivante : http://127.0.0.1:5000/
-
Scraping des Annonces d'Emploi
- URL:
/scraping_jobs
- Méthode:
GET
- Description: Effectue le scraping des annonces d'emploi depuis un site externe et les insère dans la base de données.
- Réponse réussie: Code
200
,{ "message": "Scraping done and data inserted successfully in the database" }
- Réponse en cas d'erreur: Code
500
,{ "error": "<message d'erreur>" }
- URL:
-
Obtenir Toutes les Annonces
- URL:
/jobs
- Méthode:
GET
- Description: Retourne la liste de toutes les annonces d'emploi présentes dans la base de données.
- Réponse réussie: Code
200
, liste des annonces sous forme de JSON.
- URL:
-
Créer une Nouvelle Annonce
- URL:
/jobs_post
- Méthode:
POST
- Données requises: JSON avec
title
,location
,company_name
,job_type
. - Réponse réussie: Code
201
, JSON de l'annonce créée. - Exemple de données:
{"title": "Développeur Python", "location": "Paris", "company_name": "XYZ Corp", "job_type": "Full-time"}
- URL:
-
Mettre à Jour une Annonce
- URL:
/jobs/<int:job_id>
- Méthode:
PUT
- Données requises: JSON avec
title
,location
,company_name
,job_type
. - Réponse réussie: Code
200
, JSON de l'annonce mise à jour. - Exemple de données:
{"title": "Senior Python Developer", "location": "Lyon", "company_name": "ABC Inc", "job_type": "Part-time"}
- URL:
-
Supprimer une Annonce Spécifique
- URL:
/jobs/<int:job_id>
- Méthode:
DELETE
- Description: Supprime une annonce spécifiée par son ID.
- Réponse réussie: Code
200
,{ "message": "Job deleted" }
- URL:
-
Supprimer Toutes les Annonces
- URL:
/jobs
- Méthode:
DELETE
- Description: Supprime toutes les annonces de la base de données.
- Réponse réussie: Code
200
,{ "message": "All jobs deleted" }
- URL:
- Annonce d'Emploi :
job_id
: Identifiant unique (int).title
: Titre de l'emploi (string).location
: Lieu de l'emploi (string).company_name
: Nom de l'entreprise (string).job_type
: Type de contrat (string).
- Code
404
: URL non trouvée. - Code
500
: Erreur interne du serveur.
Pour déclencher le scraping et l'insertion des données :
curl http://127.0.0.1:5000/scraping_jobs
Pour récupérer la liste de toutes les annonces :
curl http://127.0.0.1:5000/jobs
Pour ajouter une nouvelle annonce d'emploi :
curl -X POST -H "Content-Type: application/json" -d '{"title": "Développeur Python", "location": "Paris", "company_name": "XYZ Corp", "job_type": "Full-time"}'http://127.0.0.1:5000/jobs_post
Pour mettre à jour une annonce existante (remplacer 1
par l'ID de l'annonce) :
curl -X PUT -H "Content-Type: application/json" -d '{"title": "Senior Python Developer", "location": "Lyon", "company_name": "ABC Inc", "job_type": "Part-time"}'http://127.0.0.1:5000/jobs/1
Pour supprimer une annonce spécifique (remplacer 1
par l'ID de l'annonce) :
curl -X DELETE http://127.0.0.1:5000/jobs/1
Pour supprimer toutes les annonces :
curl -X DELETE http://127.0.0.1:5000/jobs
- Remplacez les données JSON dans les commandes
POST
etPUT
par les informations pertinentes selon vos besoins. - L'ID dans les commandes
PUT
etDELETE
doit être remplacé par l'ID réel de l'annonce que vous souhaitez mettre à jour ou supprimer. - Assurez-vous que l'API Flask est en cours d'exécution avant d'exécuter ces commandes.