Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

API Fipe - #1

11/01/2019

Na vídeo-aula de hoje faremos um sistema de integração entre o nosso site e o banco de dados da FIPE Veículos. Devido a extensão da aula ela será dividida em 2 partes.

API

A tabela FIPE não fornece uma API oficial de integração, porém alguns desenvolvedores criaram uma API própria para fornecimento dos resultados vindos do banco de dados da FIPE.

A API que utilizaremos poderá ser encontrada no site fipeapi.appspot.com

Diretórios e Arquivos

Os nossos diretórios ficarão da seguinte maneira:

Diretórios Fipe

A biblioteca Zepto auxiliará nosso uso do ajax e pode ser encontrada no site zeptojs.com.

Index

A página inicial do nosso site será um html5 simples com 3 selects:

<!doctype html>
<html lang="pt-br">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Tabela Fipe</title>
    <link rel="stylesheet" href="lib/style.css">
</head>

<body>
    <form name="formFipe" id="formFipe" method="post" action="controller/controllerFipe.php">
        <div class="form">
            <select name="brand" id="brand" required>
                <option value="">Selecione</option>
            </select>

            <select name="vehicles" id="vehicles" required>
                <option value="">Selecione</option>
            </select>

            <select name="year" id="year" required>
                <option value="">Selecione</option>
            </select>
        </div>
    </form>

    <script src="lib/zepto.min.js"></script>
    <script src="lib/javascript.js"></script>
</body>
</html>

Estilizando a Página

Vamos estilizar o nossos selects com o CSS, escondendo temporariamente os dois últimos selects:

select{
    display: flex;
    flex-direction: column;
    width: 40%;
    height: 40px;
    margin: 30px 30%;
}
#vehicles,#year{display: none;}

Funções ajax

No nosso javascript serão feitas as funções que serão utilizadas com ajax:

(function readyJS(win,doc){

    //Get Root
    function getRoot() {
        return win.location.protocol+"//"+doc.location.hostname+"/";
    }

    //Get brand
    function getBrand()
    {
        $.ajax({
            url: getRoot()+"controller/controllerFipe.php?action=brand",
            type:"post",
            dataType:"json",
            success:function (response) {
                const responseJson=JSON.parse(response);
                for(let i=0; i < responseJson.length; i++){
                    $("#brand").append("<option value='"+responseJson[i].id+"'>"+responseJson[i].name+"</option>");
                }
            }
        });
    }

    getBrand();

})(window,document);

Controller

O controller ficará da seguinte forma:

<?php
include ("../class/ClassFipe.php");
$objFipe=new ClassFipe();
$action=$_GET['action'];
if(isset($_GET['brandId'])){$brandId=$_GET['brandId'];}else{$brandId=null;}
if(isset($_GET['vehicleId'])){$vehicleId=$_GET['vehicleId'];}else{$vehicleId=null;}

if($action=='brand'){
    $objFipe->setUrl("http://fipeapi.appspot.com/api/1/carros/marcas.json");
    echo $objFipe->getUrl();
}

Criando a ClassFipe

A classe fipe ficará responsável por setar as urls de acordo com a requisição:

<?php
class ClassFipe{

    private $url;

    #Set url
    public function setUrl($url)
    {
        $this->url=file_get_contents($url);
    }

    #Return url
    public function getUrl()
    {
        return json_encode($this->url);
    }
}

Na próxima aula finalizamos nosso sisteminha. Sucesso nos códigos e na vida!

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

Posts Relacionados

PHP to PDF
No tutorial de hoje ensinaremos como exportar os dados do banco MySql para o formato PDF. Para isso, utilizaremos o PHP e a classe MPDF.
Saiba mais!
API Fipe - #2
Nessa segunda parte vamos finalizar nossa integração com a API da Fipe trazendo os valores dos veículos, ano e tipo de combustível de acordo com a marca.
Saiba mais!
PHP
PHP é uma das principais linguagens de programação utilizada nas plataformas web. Isso porque além de ser uma linguagem leve, o PHP é robusto.
Saiba mais!