1
resposta

10 Faça como eu fiz: funções assíncronas e requisições POST no Dart

1.Utilize a função que já existe para obter dados ajustando seu retorno

Future<List<dynamic>> requestDataAsync() async {
 String url = 
  "https://gist.githubusercontent.com/Zilalb/c1d8a94b58803241d299a16b15149e33/raw/6f9ac72a6313bdf7d1515524028588718a8aff9a/accounts.json";
 Response response = await get(Uri.parse(url));
 return json.decode(response.body);

2. Crie a função sendDataAsync

Future<void>sendDataAsync(Map<String, dynamic> mapAccount) async {

3. Implemente a função sendDataAsync

Future<void>sendDataAsync(Map<String, dynamic> mapAccount) async {
  List<dynamic> listAccounts = await requestDataAsync();
  listAccounts.add(mapAccount);
  String content = json.encode(listAccounts);
  print(content);

4. Envie os dados com requisição POST

import 'dart:convert';
Future<void>sendDataAsync(Map<String, dynamic> mapAccount) async {
  List<dynamic> listAccounts = await requestDataAsync();
  listAccounts.add(mapAccount);
  String content = json.encode(listAccounts);
  print(content);

String url = 
  "https://api.github.com/gists/c1d8a94b58803241d299a16b15149e33";
 
 Response response = await post(
  Uri.parse(url),
  headers: {
    "Authorization" : "Bearer $githubApikey"
  },
  body: json.encode({
    "description" : "account.json",
    "public" : true,
    "files" : {
      "account.json": {
        "content": content,
      }
    }
  }),
  );
 print(response.statusCode);
}

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Olá, Zilda, como vai?

O código que você apresentou está bem coerente com o que o exercício propõe. A leitura dos dados com requestDataAsync está estruturada de forma adequada, o uso de json.decode funciona nesse caso e o retorno como lista faz sentido para o tipo de arquivo que você está manipulando. Na parte do envio, a lógica de recuperar a lista atual, adicionar um novo item e então montar o corpo da requisição também está organizada e clara.

Continue compartilhando seus exercícios por aqui. O fórum está à disposição.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!