API Integration in Flutter - A Step-by-Step Guide
Learn how to integrate APIs into your Flutter app with this easy-to-follow tutorial.
Step 1: Add Dependencies
Start by adding the necessary dependencies for HTTP requests and JSON handling in your pubspec.yaml
file.
dependencies:
flutter:
sdk: flutter
http: ^0.13.3
Run flutter pub get
to install the dependencies.
Step 2: Create a Service Class for API Calls
Next, create a Dart file (e.g., api_service.dart
) to handle your API logic. Below is an example of a simple GET request function:
import 'dart:convert';
import 'package:http/http.dart' as http;
class ApiService {
final String baseUrl;
ApiService({required this.baseUrl});
Future
Step 3: Use the Service in Your Flutter App
Now, integrate the ApiService
into your Flutter screen or widget and start using the API methods:
class MyApiPage extends StatefulWidget {
@override
_MyApiPageState createState() => _MyApiPageState();
}
class _MyApiPageState extends State {
late ApiService apiService;
@override
void initState() {
super.initState();
apiService = ApiService(baseUrl: 'https://jsonplaceholder.typicode.com');
fetchData();
}
Future fetchData() async {
final response = await apiService.fetchData('todos/1');
setState(() {
data = response;
});
}
}
Step 4: Handle JSON Parsing
If needed, you can create model classes to easily parse the JSON response, like so:
class Todo {
final int id;
final String title;
final bool completed;
Todo({required this.id, required this.title, required this.completed});
factory Todo.fromJson(Map json) {
return Todo(
id: json['id'],
title: json['title'],
completed: json['completed'],
);
}
}
Step 5: Error Handling
Don't forget to add error handling for cases like network failures or unexpected responses:
It’s essential to handle errors gracefully, such as showing a "try again" button or a friendly message.
Step 6: Test the Integration
Finally, test your app on an emulator or physical device to ensure the API integration works as expected.
Step 7: Optimize and Finalize
For a better user experience, consider adding loading states, caching, pagination, or even a retry mechanism in case of errors.
Comments
Post a Comment