@vicentecalfo/aqui-tem-mata-api-wrapper

Este pacote visa buscar informações de desmatamento da Mata Atlântica através dos recursos da API do projeto "Aqui Tem Mata?"

Usage no npm install needed!

<script type="module">
  import vicentecalfoAquiTemMataApiWrapper from 'https://cdn.skypack.dev/@vicentecalfo/aqui-tem-mata-api-wrapper';
</script>

README

@vicentecalfo/aqui-tem-mata-api-wrapper

Este pacote visa facilitar a busca de informações de desmatamento da Mata Atlântica através dos recursos da API do projeto "Aqui Tem Mata?".

O projeto Aqui tem Mata? é um aplicativo para busca de informações sobre a existência de áreas remanescentes de Mata Atlântica no país. Para saber mais, clique aqui.

Instalação

npm install @vicentecalfo/aqui-tem-mata-api-wrapper --save

Utilização

import { AquiTemMataApi } from '@vicentecalfo/aqui-tem-mata-api-wrapper';

const aquiTemMataApi = new AquiTemMataApi();
// Busca município
aquiTemMataApi
    .municipio('duque de caxias')
    .subscribe(
        (data) => console.log(data.body),
        (error) => console.log(error)
    );

// Busca por área de mata
aquiTemMataApi
    .areaDeMata(
        { municipio: 'Duque de Caxias', uf: 'RJ' }
    )
    .subscribe(
        (data) => console.log(data.body),
        (error) => console.log(error)
    );

Resultado das consultas acima

Observe que o resultado de fato está na propriedade rows. Esta estrutura será a mesma para todos os endpoints.

// Resultado para consulta de município
{
    "rows": [{
        "municipio": "Duque de Caxias",
        "uf": "RJ"
    }],
    "time": 0.016,
    "fields": {
        "municipio": {
            "type": "string",
            "pgtype": "text"
        },
        "uf": {
            "type": "string",
            "pgtype": "text"
        }
    },
    "total_rows": 1
}
// Resultado para consulta de área de mata
{
    "rows": [{
        "area_verde_total_km2": 162.07575612574,
        "area_verde_total_ha": 16207.575612574,
        "municipio_na_lei_ma_porcentagem": 1.00000000016057
    }],
    "time": 0.005,
    "fields": {
        "area_verde_total_km2": {
            "type": "number",
            "pgtype": "float8"
        },
        "area_verde_total_ha": {
            "type": "number",
            "pgtype": "float8"
        },
        "municipio_na_lei_ma_porcentagem": {
            "type": "number",
            "pgtype": "float8"
        }
    },
    "total_rows": 1
}

Métodos Disponíveis

Todos os métodos podem receber um parâmetro adicional para as requisições HTTP (reqOptions). Para verificar todas as opções clique aqui.

Os métodos retornam uma observable, no entanto você pode usar promises também. Clique aqui para ver o exemplo.

Método Parâmetro Descrição
municipio(nomeDoMunicipio, reqOptions) Nome do município Busca um município do Brasil.
areaDeMata(municipio, reqOptions) { municipio, uf } Busca valores da área total de Mata Atlântica em Km2 e ha.
UCs(municipio, reqOptions) { municipio, uf } Busca presença em unidades de conservação (UCs).
baciaHidro(municipio, reqOptions) { municipio, uf } Busca Localização em bacias hidrográficas.
formacoesNaturais(municipio, reqOptions) { municipio, uf } Busca Valores de área (ha) por formação natural.
taxaDesmatamentoAnual(anoInicio, anoFinal, reqOptions) anoInicio (número) e anoFinal(número) Busca a taxa de desmatamento por séries anuais. Séries disponíveis até o momento: 20002005, 20052008, 20082010, 20102011, 20112012, 20122013, 20132014, 20142015, 20152016, 20162017, 20172018, 20182019.
convertTexto(texto, json) Texto (texto com problema de codficação que precisa ser corrigido) e Json (boleano, determina se a saída será em texto ou um objeto JSON) Corrige problemas de codificação no texto.

Exemplos

Observable

import { AquiTemMataApi } from '@vicentecalfo/aqui-tem-mata-api-wrapper';

const aquiTemMataApi = new AquiTemMataApi();

aquiTemMataApi
    .taxaDesmatamentoAnual(
        2018, 
        2019, 
        { json:true } // Faz o parse automático para JSON
    )
    .subscribe(
        (data) => console.log(data.body),
        (error) => console.log(error)
    );

Promise

import { AquiTemMataApi } from '@vicentecalfo/aqui-tem-mata-api-wrapper';

const aquiTemMataApi = new AquiTemMataApi();

aquiTemMataApi
    .UCs(municipio, {json: true})
    .toPromise()
    .then((data) => console.log(data.body))
    .catch((error) => console.log(error));

Codificação de Texto

Até o momento somente o endpoint (método) bacia hidro, apresentou problemas de codificação (encode). Para resolver o problema você pode usar o método convertTexto. Para maiores informações ver métodos disponíveis.

Considerações gerais