http_api_service 1.0.4
http_api_service: ^1.0.4 copied to clipboard
A simple and reusable HTTP service for Flutter applications.
api_service #
api_service
is a Dart package that provides an easy-to-use, reusable HTTP service for Flutter applications. With this package, you can perform various HTTP requests such as GET, POST, PUT, and DELETE in a simple and structured way.
Key Features #
- Supports multiple HTTP methods: GET, POST, PUT, DELETE
- Robust Response Handling: Easily manage responses and exceptions
- Reusable and Easy to Use: Can be reused across different parts of the application
- Logging: Logs each request and response for easier debugging
- Supports query parameters and custom headers: Customize each request to fit your application's needs
Installation #
To use this package, add api_service
to your pubspec.yaml
file from pub.dev:
dependencies:
api_service: ^1.0.0
Then run the following command to install the dependencies:
dart pub get
Alternatively, if you want to use the latest version directly from GitHub, you can add it like this:
dependencies:
api_service:
git:
url: https://github.com/naneps/api_service.git
ref: main
Then run:
dart pub get
Usage #
Initialize ApiService #
To use ApiService
, you need to initialize an instance of the ApiService
class with the base URL of the API you want to interact with.
import 'package:api_service/api_service.dart';
void main() {
final apiService = ApiService(baseUrl: 'https://api.example.com');
}
Using HTTP Methods #
Here’s how to use the different HTTP methods supported by api_service
:
GET Request
final response = await apiService.get('/users');
if (response.statusCode == 200) {
// Successful response
print('Response: ${response.body}');
} else {
// Handle error
print('Error: ${response.statusCode}');
}
POST Request
final response = await apiService.post(
'/users',
body: {
'name': 'John Doe',
'email': 'john@example.com',
},
);
if (response.statusCode == 201) {
// Data successfully created
print('Created: ${response.body}');
} else {
// Handle error
print('Error: ${response.statusCode}');
}
PUT Request
final response = await apiService.put(
'/users/1',
body: {
'name': 'John Doe Updated',
'email': 'john_updated@example.com',
},
);
if (response.statusCode == 200) {
// Data successfully updated
print('Updated: ${response.body}');
} else {
// Handle error
print('Error: ${response.statusCode}');
}
DELETE Request
final response = await apiService.delete('/users/1');
if (response.statusCode == 200) {
// Data successfully deleted
print('Deleted: ${response.body}');
} else {
// Handle error
print('Error: ${response.statusCode}');
}
Error Handling #
api_service
automatically handles common HTTP status codes and throws exceptions based on the error type.
Example error handling:
try {
final response = await apiService.get('/users');
// Handle successful response
} catch (e) {
print('Error occurred: $e');
}
Handled Exceptions: #
BadRequestException
UnauthorizedException
ForbiddenException
NotFoundException
InternalServerErrorException
ApiException
Contribution #
If you want to contribute to this project, feel free to fork this repository and submit a pull request. Before doing so, make sure to follow the code guidelines and run tests.
License #
This package is licensed under the MIT License.
For further questions or support, visit the GitHub repository.