Коллекции ресурсов часто огромны, и когда необходимо получить из них некоторые данные, всегда было бы не очень эффективно получать полный список и просматривать его для поиска конкретных элементов. Поэтому нам следует разработать оптимизированный API поиска.
Фильтрация:
GET /api/cars ? country=Japan
GET /api/cars ? createDate=2019-11-11
Сортировка:
GET /api/cars ? sort=createDate,asc
GET /api/cars ? sort=createDate,desc
Пейджинг:
GET /api/cars ? limit=100
GET /api/cars ? offset=2
Объедините функции:
GET /api/cars ? country=Japan & sort=createDate,desc & limit=100 & offset=2
Результаты в списке из 100 автомобилей из Японии, отсортированные по дате создания в порядке убывания, начиная со второй страницы (записи 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 .
Эта команда запускает сборку Maven для создания пакета JAR и сборки образа Docker.
Примечание. Начальной команде может потребоваться некоторое время для загрузки базового образа из DockerHub.
$ docker run -p 8080:8080 -it --rm spring-boot-efficient-search-api
$ curl localhost:8080/api/cars/1
Ответ:
{
"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 } ' )
Этот проект развернут на https://spring-boot-efficient-search-api.fly.dev/api/cars.
Попробуйте: ссылка на демо
Образ Docker: raouf25/spring-boot-efficient-search-api
Обратитесь к разделу «Команды Docker», чтобы узнать, как получить, запустить и запросить API с помощью cURL и jq.
Для получения более подробной информации, пожалуйста, смотрите этот средний пост .
Spring Boot Efficient Search Api Авторские права © 2020 Abderraouf Makhlouf [email protected]