Inicio » Cursos » Flutter y Laravel Tienda Delivery

Uso de la API para sincronizar la BD | Curso Flutter y Laravel Tienda Delivery

Para llenar datos desde un servidor web en al Aplicativo debe existir una arquitectura llamada API la cual permite el intercambio de datos aplicaciones

Lección 42: Uso de la API para sincronizar la BD

Para llenar datos desde un servidor web en al Aplicativo debe existir una arquitectura llamada API la cual permite el intercambio de datos aplicaciones

import 'dart:convert';

import 'package:arequipalocal/api/Api.dart';
import 'package:arequipalocal/basededatos/Bd.dart';
import 'package:arequipalocal/modelo/Categoria.dart';
import 'package:arequipalocal/modelo/Producto.dart';
import 'package:arequipalocal/modelo/Subcategoria.dart';
import 'package:arequipalocal/pantalla/PantallaCarrito.dart';
import 'package:arequipalocal/pantalla/PantallaInicio.dart';
import 'package:arequipalocal/pantalla/PantallaProductos.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'package:shared_preferences/shared_preferences.dart';
import 'package:provider/provider.dart';
class PantallaCategoria extends StatefulWidget {
  @override
  _PantallaCategoriaState createState() => _PantallaCategoriaState();
}

var BD = DBHelper();
class _PantallaCategoriaState extends State<PantallaCategoria> {
  final GlobalKey<ScaffoldState> _globalKey = new GlobalKey<ScaffoldState>();
  Future<List<Categoria>> _getData() async{
    var respuesta = await http.get(
      Uri.encodeFull("http://arequipalocal.com/api/enviarproductos"),
      headers: { 'Accept' : 'application/json'}
    );

    setState(() {
      var data = json.decode(respuesta.body);
      //print(data.toString());
      if(data!= null){
        // llenar categorias
        var _categorias = data['categorias'];
        BD.deleteTable("categoria", "1");
        for(int i=0; i<_categorias.length;i++){
          var registro = Categoria(
            _categorias[i]['id'],
            _categorias[i]['nombre'],
            _categorias[i]['urlfoto']
          );
          //print(registro.toString());
          BD.saveCategoria(registro);
        }
        // llenar subcategorias
        var _subcategorias = data['subcategorias'];
        BD.deleteTable("subcategoria", "1");
        for(int i=0; i<_subcategorias.length;i++){
          var registro = Subcategoria(
              _subcategorias[i]['id'],
              _subcategorias[i]['nombre'],
              _subcategorias[i]['urlfoto'],
              _subcategorias[i]['categorias_id'],
          );
          BD.saveSubcategoria(registro);
        }

        // llenar productos
        var _productos = data['productos'];
        BD.deleteTable("producto", "1");
        for(int i=0; i<_productos.length;i++){
          var registro = Producto(
            _productos[i]['id'],
            _productos[i]['nombre'],
            _productos[i]['descripcion'],
            double.parse(_productos[i]['precio']),
            _productos[i]['urlfoto'],
            _productos[i]['unidad'],
            _productos[i]['subcategorias_id'],
          );
          BD.saveProducto(registro);
        }
        print("ok");

      }
      else{
        print("Error");
      }
    });

  }

  @override
  void initState() {
    // TODO: implement initState
    _getData();
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
      return Scaffold()
        

  }

  
}

 


1454 visitas

Curso Flutter y Laravel Tienda Delivery

Curso Flutter y Laravel Tienda Delivery

Descarga el código fuente del proyecto

USD 37.00 67.00


COMPRAR CURSO

Codea App
Codea App FullStack

Perú, México, Colombia, España, Venezuela, Argentina, Bolivia

You Fb Tik Pin

© Todos los derechos reservados Codea App | Cursos de programación | 2020 - 2022