Las colecciones de recursos suelen ser enormes, y cuando es necesario recuperar algunos datos de ellas, no sería muy eficiente obtener siempre la lista completa y buscar elementos específicos en ella. Por lo tanto, deberíamos diseñar una API de búsqueda optimizada.
Filtración:
GET /api/cars ? country=Japan
GET /api/cars ? createDate=2019-11-11
Clasificación:
GET /api/cars ? sort=createDate,asc
GET /api/cars ? sort=createDate,desc
Paginación:
GET /api/cars ? limit=100
GET /api/cars ? offset=2
Combina características:
GET /api/cars ? country=Japan & sort=createDate,desc & limit=100 & offset=2
Resultados en la lista de 100 automóviles de Japón, ordenados por fecha de creación en orden descendente, a partir de la segunda página (registros 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 .
Este comando ejecuta Maven build para crear un paquete JAR y compila la imagen de Docker.
Nota: El comando inicial puede tardar en descargar la imagen base de DockerHub
$ docker run -p 8080:8080 -it --rm spring-boot-efficient-search-api
$ curl localhost:8080/api/cars/1
Respuesta:
{
"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 } ' )
Este proyecto se implementa en https://spring-boot-ficient-search-api.fly.dev/api/cars
Pruebe: enlace de demostración
Imagen de Docker: raouf25/spring-boot-ficient-search-api
Consulte la sección Comandos de Docker para extraer, ejecutar y consultar la API mediante cURL y jq.
Para obtener más detalles, consulte esta publicación mediana .
Api de búsqueda eficiente de Spring Boot Copyright © 2020 por Abderraouf Makhlouf [email protected]