การรวบรวมทรัพยากรมักจะมีปริมาณมหาศาล และเมื่อต้องดึงข้อมูลบางอย่างออกมา การดึงรายการทั้งหมดและเรียกดูรายการเฉพาะเสมอไปจะไม่มีประสิทธิภาพมากนัก ดังนั้นเราจึงควรออกแบบ Search 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 คันจากประเทศญี่ปุ่น เรียงตามวันที่สร้างจากมากไปน้อย เริ่มจากหน้าที่ 2 (บันทึก 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 build เพื่อสร้างแพ็คเกจ 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
ลอง: ลิงค์สาธิต
ภาพนักเทียบท่า: raouf25/spring-boot-efficient-search-api
โปรดดูส่วนคำสั่ง Docker สำหรับการดึง เรียกใช้ และสืบค้น API โดยใช้ cURL และ jq
สำหรับรายละเอียดเพิ่มเติม โปรดดู โพสต์ขนาดกลาง นี้
Spring Boot Efficient Search Api ลิขสิทธิ์ © 2020 โดย Abderraouf Makhlouf [email protected]