Article image
Leandro Santos
Leandro Santos20/08/2023 18:43
Compartilhe

Exemplo de Requisição http com pacote DIO

  • #Flutter

Instalação do Pacote Dio:

Certifique-se de adicionar o pacote Dio ao seu arquivo pubspec.yaml e execute flutter pub get para instalá-lo. Você pode adicionar o Dio da seguinte forma:

yaml

Copy code
dependencies: dio: ^4.0.0 

Importando Dio:

No arquivo Dart onde você deseja usar o Dio, importe-o da seguinte maneira:

dart

Copy code
import 'package:dio/dio.dart';

Configuração do Dio:

Antes de usar o Dio, você precisa configurá-lo com a base URL do seu servidor ou API. Por exemplo:

dart

Copy code
Dio dio = Dio(BaseOptions(baseUrl: 'https://sua-api.com'));

Operação de Leitura (Read):

dart

Copy code
import 'package:dio/dio.dart'; 

// Configurar o Dio com a base URL da API 
Dio dio = Dio(BaseOptions(baseUrl: 'https://sua-api.com'));

 // Método para buscar todas as tarefas
 Future<List<Task>> fetchTasks() async { 
try {
 final response = await dio.get('/tasks');
 if (response.statusCode == 200) { 
final List<dynamic> data = response.data;
 List<Task> tasks = data.map((json) => Task.fromJson(json)).toList();
 return tasks; } else { throw Exception('Erro na solicitação GET')
 }
 } 
catch (e) { throw Exception('Erro de rede: $e');
 } 
} 

Operação de Criação (Create):

dart

Copy code
// Método para criar uma nova tarefa 
Future<Task> createTask(Task newTask) async {
 try { 
final response = await dio.post('/tasks', data: newTask.toJson());
 if (response.statusCode == 201) { 
return Task.fromJson(response.data);
 } else {
 throw Exception('Erro na solicitação POST');
 }
 } catch (e) {
 throw Exception('Erro de rede: $e');
 } 
} 

Operação de Atualização (Update):

dart

Copy code
// Método para atualizar uma tarefa existente 

Future<Task> updateTask(Task updatedTask) async { 
try { 
final response = await dio.put('/tasks/${updatedTask.id}',
 data: updatedTask.toJson()); if (response.statusCode == 200) {
 return Task.fromJson(response.data); 
} else {
 throw Exception('Erro na solicitação PUT'); 
} 
} catch (e) {
 throw Exception('Erro de rede: $e');
 }
 } 

Operação de Exclusão (Delete):

dart

Copy code
// Método para excluir uma tarefa 
Future<void> deleteTask(int taskId) async { 
try {
 final response = await dio.delete('/tasks/$taskId'); 
if (response.statusCode == 204) {
 // Recurso excluído com sucesso, não há dados para retornar 
} else { 
throw Exception('Erro na solicitação DELETE'); 
}
 }
 catch (e) {
 throw Exception('Erro de rede: $e'); 
}
 }

Espero que Esse conteúdo ajude vocês de alguma forma.

Compartilhe
Comentários (0)