Les collections de ressources sont souvent énormes, et lorsqu’il faut en extraire certaines données, il ne serait pas très efficace de toujours obtenir la liste complète et de la parcourir pour rechercher des éléments spécifiques. Par conséquent, nous devrions concevoir une API de recherche optimisée.
Filtration:
GET /api/cars ? country=Japan
GET /api/cars ? createDate=2019-11-11
Tri:
GET /api/cars ? sort=createDate,asc
GET /api/cars ? sort=createDate,desc
Pagination:
GET /api/cars ? limit=100
GET /api/cars ? offset=2
Combinez les fonctionnalités :
GET /api/cars ? country=Japan & sort=createDate,desc & limit=100 & offset=2
Résultats dans la liste de 100 voitures du Japon, triées par date de création par ordre décroissant, à partir de la deuxième page (fiches 101-200).
$ git clone https://github.com/Raouf25/Spring-Boot-efficient-search-API.git
$ docker build -t= " spring-boot-efficient-search-api " --force-rm=true .
Cette commande exécute Maven build pour créer un package JAR et crée l'image Docker.
Remarque : La commande initiale peut prendre du temps pour télécharger l'image de base depuis DockerHub.
$ docker run -p 8080:8080 -it --rm spring-boot-efficient-search-api
$ curl localhost:8080/api/cars/1
Réponse:
{
"id" : 1 ,
"manufacturer" : " Acura " ,
"model" : " Integra " ,
"type" : " Small " ,
"country" : " Japan " ,
"createDate" : " 1931-02-01 "
}
docker stop $( docker container ls | grep " spring-boot-efficient-search-api:* " | awk ' { print $1 } ' )
Ce projet est déployé sur https://spring-boot-efficient-search-api.fly.dev/api/cars
Essayez : Lien de démonstration
Image Docker : raouf25/spring-boot-efficient-search-api
Reportez-vous à la section Commandes Docker pour extraire, exécuter et interroger l'API à l'aide de cURL et jq.
Pour plus de détails, veuillez consulter cet article moyen .
API de recherche efficace Spring Boot Copyright © 2020 par Abderraouf Makhlouf [email protected]