Filtrar productos
Filtrar por el nombre
Usando el endpoint /products/all y pasando name como parámetro de consulta, puedes filtrar productos por nombre.
Se reemplaza
Genericporlibropara mostrar una request con resultados.
Request:
[GET] https://fake-store-api-2no73ornoa-uc.a.run.app/api/products/all?name=Generic
Response:
{
"content": [
{
"id": 34,
"name": "Libro de Cocina 'Recetas del Mundo'",
"description": "Libro de recetas con platos internacionales, ilustraciones y guías paso a paso.",
"price": 29.99,
"stockQuantity": 40,
"categoryName": "Libros y Papelería",
"imageUrl": "https://i.ibb.co/f8qMcL3/Libro-de-Cocina-Recetas-del-Mundo.png",
"createdAt": "2023-12-29",
"updatedAt": "2023-12-29"
}
],
"pageable": {
"pageNumber": 0,
"pageSize": 5,
"sort": {
"empty": true,
"sorted": false,
"unsorted": true
},
"offset": 0,
"paged": true,
"unpaged": false
},
"totalPages": 1,
"totalElements": 1,
"last": true,
"size": 5,
"number": 0,
"sort": {
"empty": true,
"sorted": false,
"unsorted": true
},
"numberOfElements": 1,
"first": true,
"empty": false
}
Filtrar por rango de precios
Usando el endpoint /products/all y pasando priceMin y priceMax como parámetros de consulta, puedes filtrar productos por rango de precios.
Request:
[GET] https://fake-store-api-2no73ornoa-uc.a.run.app/api/products/all?priceMin=900&priceMax=1500
Response:
{
"content": [
{
"id": 1,
"name": "Portátil Apple MacBook Pro",
"description": "Portátil de alto rendimiento con pantalla Retina de 13 pulgadas, chip Apple M1, 8 GB de RAM y 256 GB de SSD.",
"price": 1299.99,
"stockQuantity": 75,
"categoryName": "Electrónica",
"imageUrl": "https://i.ibb.co/cDj3dpX/Apple-Mac-Book-Pro.png",
"createdAt": "2023-12-29",
"updatedAt": "2023-12-29"
}
],
"pageable": {
"pageNumber": 0,
"pageSize": 5,
"sort": {
"empty": true,
"sorted": false,
"unsorted": true
},
"offset": 0,
"paged": true,
"unpaged": false
},
"totalPages": 1,
"totalElements": 1,
"last": true,
"size": 5,
"number": 0,
"sort": {
"empty": true,
"sorted": false,
"unsorted": true
},
"numberOfElements": 1,
"first": true,
"empty": false
}
Filtrar por categoría
Usando el endpoint /products/all y pasando categoryId como parámetro de consulta, puedes filtrar productos por categoría.
Request:
[GET] https://fake-store-api-2no73ornoa-uc.a.run.app/api/products/all?categoryId=2
Nota: Puedes encontrar el id de cada categoría en el endpoint
/categories/all.
Response:
{
"content": [
{
"id": 6,
"name": "Camiseta Nike Dri-FIT",
"description": "Camiseta deportiva de alto rendimiento con tecnología Dri-FIT para mantenerse seco y cómodo.",
"price": 39.99,
"stockQuantity": 100,
"categoryName": "Moda",
"imageUrl": "https://i.ibb.co/Hpv1gLk/Camiseta-Nike-Dri-FIT.png",
"createdAt": "2023-12-29",
"updatedAt": "2023-12-29"
}
// ...
],
"pageable": {
"pageNumber": 0,
"pageSize": 5,
"sort": {
"empty": true,
"sorted": false,
"unsorted": true
},
"offset": 0,
"paged": true,
"unpaged": false
},
"totalPages": 1,
"totalElements": 5,
"last": true,
"size": 5,
"number": 0,
"sort": {
"empty": true,
"sorted": false,
"unsorted": true
},
"numberOfElements": 5,
"first": true,
"empty": false
}
Unir filtros
Puedes filtrar productos usando todos los parámetros de consulta y unirlos todos.
Ejemplo: Todos los productos con un precio entre 900 y 1300, con el título "Generic" y el id de categoría 1.
Se reemplaza
GenericporApplepara mostrar una request con resultados.
[GET] https://fake-store-api-2no73ornoa-uc.a.run.app/api/products/all?title=Generic&priceMin=900&priceMax=1300&categoryId=1
Response:
{
"content": [
{
"id": 1,
"name": "Portátil Apple MacBook Pro",
"description": "Portátil de alto rendimiento con pantalla Retina de 13 pulgadas, chip Apple M1, 8 GB de RAM y 256 GB de SSD.",
"price": 1299.99,
"stockQuantity": 75,
"categoryName": "Electrónica",
"imageUrl": "https://i.ibb.co/cDj3dpX/Apple-Mac-Book-Pro.png",
"createdAt": "2023-12-29",
"updatedAt": "2023-12-29"
}
],
"pageable": {
"pageNumber": 0,
"pageSize": 5,
"sort": {
"empty": true,
"sorted": false,
"unsorted": true
},
"offset": 0,
"paged": true,
"unpaged": false
},
"totalPages": 1,
"totalElements": 1,
"last": true,
"size": 5,
"number": 0,
"sort": {
"empty": true,
"sorted": false,
"unsorted": true
},
"numberOfElements": 1,
"first": true,
"empty": false
}
Ejemplo: Todos los productos con un precio entre 500 y 2000, con el id de categoría 1, con un límite de 2 productos y un offset de 1.
[GET] https://fake-store-api-2no73ornoa-uc.a.run.app/api/products/all?size=2&priceMin=500&priceMax=2000&categoryId=1&page=1
Response:
{
"content": [
{
"id": 3,
"name": "Cámara Sony Alpha A7 III",
"description": "Cámara mirrorless con sensor full-frame de 24.2 MP, grabación de vídeo 4K HDR y sistema de enfoque automático rápido.",
"price": 1999.99,
"stockQuantity": 30,
"categoryName": "Electrónica",
"imageUrl": "https://i.ibb.co/ZHT2r1s/C-mara-Sony-Alpha-A7-III.png",
"createdAt": "2023-12-29",
"updatedAt": "2023-12-29"
}
],
"pageable": {
"pageNumber": 1,
"pageSize": 2,
"sort": {
"empty": true,
"sorted": false,
"unsorted": true
},
"offset": 2,
"paged": true,
"unpaged": false
},
"totalPages": 2,
"totalElements": 3,
"last": true,
"size": 2,
"number": 1,
"sort": {
"empty": true,
"sorted": false,
"unsorted": true
},
"numberOfElements": 1,
"first": false,
"empty": false
}
Como se esta usando la interfaz
pageable, puedes usar los parámetrospageysizepara paginar los resultados. Además también se puede usar el parámetrosortpara ordenar los resultados como se explico en la sección anterior.
