Large APIs are never sent at once.
page=1 (10 items) → display
scroll down
page=2 (10 items) → append
...
Concept:
await dio.get(
'/products',
queryParameters: {
'page': page,
'limit': 10,
},
);
Pagination states:
initial → loading more → loaded
↘ error
For Week 4: understand page + limit + list append.
Case Study
Product List from API
ProductListPage
↓ watch(productsProvider)
Repository.getProducts()
↓ dio.get('/products')
API → JSON
↓ fromJson
List<Product> → UI
Conditions to demo:
success → show list
empty → empty view
timeout → error + retry
offline → connection message