Introduction : l'API REST est plus simple qu'il n'y paraît
\nDe nombreux développeurs débutants pensent qu'écrire une API REST en Java est une tâche complexe nécessitant des connaissances approfondies et de longues heures de travail. En réalité, avec des outils modernes comme Spring Boot, vous pouvez créer un service RESTful complet en seulement 30 minutes. Dans cet article, nous allons voir concrètement comment écrire une API REST en Java, en utilisant un ensemble minimal d'outils. Vous obtiendrez un modèle prêt à l'emploi que vous pourrez adapter à vos projets.
\nREST (Representational State Transfer) est un style architectural qui permet aux clients et aux serveurs d'échanger des données via HTTP. Nous allons créer une API simple pour gérer une liste de tâches (To-Do). À la fin de cet article, vous disposerez d'un serveur fonctionnel capable de créer, lire, mettre à jour et supprimer des tâches (CRUD).
\n\nÉtape 1 : Préparation de l'environnement et création du projet
\nPour commencer, nous aurons besoin de :
\n- \n
- Java Development Kit (JDK) version 17 ou supérieure. \n
- IntelliJ IDEA (Community Edition) ou tout autre IDE. \n
- Maven pour la gestion des dépendances. \n
- Postman ou un navigateur pour les tests. \n
Créons un projet avec Spring Initializr (start.spring.io). Choisissez les paramètres suivants :
\n- \n
- Project : Maven \n
- Language : Java \n
- Spring Boot : 3.2.x \n
- Dependencies : Spring Web, Spring Data JPA, H2 Database \n
Téléchargez l'archive ZIP et décompressez-la. Ouvrez le projet dans l'IDE. La structure ressemblera à ceci :
\nsrc/\n └── main/\n ├── java/com/example/restapi/\n │ ├── RestapiApplication.java\n │ ├── controller/\n │ ├── model/\n │ └── repository/\n └── resources/\n └── application.properties\nC'est la base à partir de laquelle nous allons commencer. La préparation a pris seulement 2 minutes.
\n\nÉtape 2 : Création du modèle de données et du repository
\nCommençons par le modèle. Créez la classe Task.java dans le dossier model. Ce sera l'entité représentant une tâche :
package com.example.restapi.model;\n\nimport jakarta.persistence.*;\n\n@Entity\n@Table(name = "tasks")\npublic class Task {\n @Id\n @GeneratedValue(strategy = GenerationType.IDENTITY)\n private Long id;\n\n @Column(nullable = false)\n private String title;\n\n private boolean completed;\n\n // Constructeurs\n public Task() {}\n\n public Task(String title, boolean completed) {\n this.title = title;\n this.completed = completed;\n }\n\n // Getters et setters\n public Long getId() { return id; }\n public void setId(Long id) { this.id = id; }\n public String getTitle() { return title; }\n public void setTitle(String title) { this.title = title; }\n public boolean isCompleted() { return completed; }\n public void setCompleted(boolean completed) { this.completed = completed; }\n}\nCréons maintenant le repository. Dans le dossier repository, créez l'interface TaskRepository.java :
package com.example.restapi.repository;\n\nimport com.example.restapi.model.Task;\nimport org.springframework.data.jpa.repository.JpaRepository;\nimport org.springframework.stereotype.Repository;\n\n@Repository\npublic interface TaskRepository extends JpaRepository<Task, Long> {\n // JpaRepository fournit déjà toutes les méthodes CRUD de base\n}\nÀ cette étape, nous avons décrit la structure des données et la manière d'interagir avec la base de données. Spring Data JPA créera automatiquement la table dans H2 et fournira les méthodes findAll(), save(), deleteById() et autres. Cela permet d'économiser des heures de codage manuel.
Étape 3 : Création du contrôleur avec les endpoints REST
\nPassons maintenant à la partie la plus intéressante : le contrôleur. Dans le dossier controller, créez la classe TaskController.java. Elle gérera les requêtes HTTP :
Blogs
Book Recommendations
Lire aussi