🖨️ Version PDF
Objectif : construire des endpoints compréhensibles, testables, et cohérents (codes HTTP, validation, erreurs).
REST = un style d’API basé sur :
GET /api/chiens/10
POST /api/chiens
PUT /api/chiens/10
DELETE /api/chiens/10
En entreprise, une API se juge aussi sur ses codes HTTP.
Un controller doit :
@Valid
Il ne doit pas :
@RestController
@RequestMapping("/api/...")
@GetMapping
@PostMapping
@RequestBody
@PathVariable
@RequestParam
@RestController @RequestMapping("/api/races") class RaceController { private final RaceService service; RaceController(RaceService service) { this.service = service; } @GetMapping List<RaceDto> list() { return service.list(); } @PostMapping ResponseEntity<RaceDto> create(@Valid @RequestBody RaceCreateDto dto) { RaceDto created = service.create(dto); return ResponseEntity.status(201).body(created); } }
curl -X POST http://localhost:8080/api/races -H "Content-Type: application/json" -d '{"code":"BA","nom":"Berger Australien"}'
Nous utiliserons plutôt Swagger ou Postman.
Schéma logique :
Client -> RaceController -> RaceService -> RaceRepository -> DB
UML vous aide à :
GET /api/creerChien