Introduction : REST API en Java — c'est plus simple qu'il n'y paraît
Le développement d'API REST est l'une des compétences les plus demandées dans le développement backend moderne. Java, grâce à sa fiabilité et à son immense écosystème, reste un leader pour la création d'API industrielles. De nombreux débutants pensent qu'écrire une API REST en Java est difficile et long. En réalité, avec le bon outil (Spring Boot), vous pouvez créer un service fonctionnel en 30 minutes.
Dans cet article, nous allons voir en pratique comment créer rapidement une API REST complète en Java. Nous allons écrire une petite application pour gérer une liste de livres, qui prend en charge les opérations CRUD standard : création, lecture, mise à jour et suppression d'enregistrements. Tout le code sera prêt à être exécuté, et vous pourrez le tester via Postman ou un navigateur.
1. Préparation du projet et configuration de Spring Boot
Le moyen le plus rapide de créer un projet est d'utiliser Spring Initializr. C'est le générateur officiel qui crée une ébauche de projet avec les dépendances nécessaires.
1.1. Génération du projet
Allez sur start.spring.io et sélectionnez :
- Project : Maven (ou Gradle)
- Language : Java
- Spring Boot : la dernière version stable (par exemple, 3.2.x)
- Group : com.example
- Artifact : bookapi
Ajoutez les dépendances :
Spring Web— pour créer des contrôleurs RESTSpring Data JPA— pour travailler avec la base de donnéesH2 Database— base de données intégrée pour les tests
Cliquez sur "Generate", téléchargez l'archive et décompressez-la. Ouvrez le projet dans IntelliJ IDEA ou tout autre IDE.
1.2. Structure du projet
Après avoir ouvert le projet, vous verrez la structure suivante :
bookapi/├── src/│ ├── main/│ │ ├── java/com/example/bookapi/│ │ │ ├── BookapiApplication.java│ │ │ ├── controller/│ │ │ ├── model/│ │ │ └── repository/│ │ └── resources/│ │ └── application.properties│ └── test/└── pom.xmlCréez les packages controller, model et repository manuellement — cela facilitera la navigation.
2. Création du modèle de données et du repository
Commençons par le modèle — la classe qui décrit l'entité "Livre".
2.1. Classe Book (Model)
Créez le fichier Book.java dans le package model :
package com.example.bookapi.model;
import jakarta.persistence.*;
@Entity@Table(name = "books")public class Book {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id;
@Column(nullable = false) private String title;
@Column(nullable = false) private String author;
private int year;
public Book() {}
public Book(String title, String author, int year) { this.title = title; this.author = author; this.year = year; }
// Getters et Setters public Long getId() { return id; } public void setId(Long id) { this.id = id; }
public String getTitle() { return title; } public void setTitle(String title) { this.title = title; }
public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; }
public int getYear() { return year; } public void setYear(int year) { this.year = year; }}2.2. Repository
Créez l'interface BookRepository.java dans le package repository :
package com.example.bookapi.repository;
import com.example.bookapi.model.Book;import org.springframework.data.jpa.repository.JpaRepository;import org.springframework.stereotype.Repository;
import java.util.L