quarta-feira, 9 de agosto de 2023

Criando uma API pública dos Cavaleiros do Zodíaco

Criar nossa API a partir de um JSON

Para o mundo do desenvolvedor front-end, fazer um banco de dados muitas vezes "não é fácil".


É por isso que neste post apresento de uma forma fácil, como levar um arquivo .json a uma API pública para ser consumida em nosso front-end.

Neste caso particular, tenho um JSON com informação dos cavaleiros do Zodíaco.

Usaremos este arquivo JSON -- Zodiac.json que tem informação de 14  cavaleiros do zodíaco


Ele tem o id, nombre, constelação, classificação, description e avatar de cada cavaleiro

{
  "Zodic": [
    {
      "id": "1",
      "name": "Saga",
      "constellation": "Gêmeos",
      "classification": "Ouro",
      "description": "Saga de Gêmeos é o irmão gêmeo mais velho de Kanon...",
      "avatar": "https://raw.githubusercontent.com/nadiduno/apireset/main/.github/1.png"
    },
    {....}
]
}


Usaremos os serviços de JSONBIN para converter o arquivo JSON para uma API

Entra em 




Cria um conta



Com uma conta criada vamos a fazer-lo junto, passo a paso 😉




Bora lá 💪


Passo 1: Clicar em Bins



Passo 2: Clicar em Create a Bin




Aparece ao lado direito um quadro como este
 




Passo 3: Clicar no ícone do cadeado para tornar a API pública




Assim deve ficar o ícone



Passo 4: Clicar na área de trabalho



Colar o JSON, neste caso eu vou colar o JSON dos dados dos cavaleiros do zodíaco





Aqui o link do JSON -- Zodiac.json  para copiar e colar, porém você pode usar outro JSON se preferir



Passo 4: Clicar em Save Bin



Pronta nossa API para ser compartilhada




Agora no próximo passo te vou ensinar como é o link que deves compartilhar


Passo 5: Esta é a estrutura do link indicada pela documentação


https://api.jsonbin.io/v3/b/<BIN_ID>


Aí, mantemos a URL

https://api.jsonbin.io/v3/b/


E concatenamos o <BIN_ID> (que é o código que aparece na parte superior da imagem)




Neste API o <BIN_ID> é 64ba1bd4b89b1e2299c1dbc0
 



Resumindo

https://api.jsonbin.io/v3/b/ + 64ba1bd4b89b1e2299c1dbc0


Tendo assim o  seguinte URL

https://api.jsonbin.io/v3/b/64ba1bd4b89b1e2299c1dbc0

 
Passo 6: Copiar e colar essa ULR no browser e pressionar enter


 
Ta tam 😎💣




E pronto, já temos uma API pública para ser consumida no front-end.



Consumir a API



Vamos a testar agora nossa API, fazendo a requisição no front-end (com um card)

Vou deixar aqui o link do repositório para que clones e possas mexer.




Se desejas clonar o projeto, faça no terminal 


git clone https://github.com/nadiduno/knightsofthezodiac






Testando  API


Vou a passar a grosso modo como consumir a API, porque o intuito deste post não é consumi-la senão criar-la (que já fizemos em linhas anteriores)


Usei o link no fecth da API no arquivo main.js


fetch("https://api.jsonbin.io/v3/b/64ba1bd4b89b1e2299c1dbc0")



Estudarei  os dados da API com um console.log


Código do main.js

async function userData() {
    await fetch("https://api.jsonbin.io/v3/b/64ba1bd4b89b1e2299c1dbc0")
        .then((response) => {
            return response.json();
        })
        .then((data) => {
            // Estudando os dados
            console.log(data)
        })
        .catch((error) => {
            console.error(error)
        })
}
userData()



Bora ver nosso site, e ver o console no inspeccionar (F12)






Para conhecer a estrutura



Fui abrindo o objeto




Abrindo



Abrindo



E usei a estrutura do objeto 


data["record"]["Zodic"]["0"]["name"]



Para pegar o nome do elemento 0 (primeiro elemento)  



E para pegar a URL do avatar

data["record"]["Zodic"]["0"]["avatar"].






Ficando o código no main.js assim


async function userData() {
    await fetch("https://api.jsonbin.io/v3/b/64ba1bd4b89b1e2299c1dbc0")
        .then((response) => {
            return response.json();
        })
        .then((data) => {
            // Estudando os dados 
            console.log(data)

            let zodicName = document.createElement('p')
            let zodicImg = document.createElement('img')

            zodicName.textContent = data["record"]["Zodic"]["0"]["name"]
            zodicImg.src = data["record"]["Zodic"]["0"]["avatar"]

            root.append(zodicName, zodicImg)
        })
        .catch((error) => {
            console.error(error)
        })
}
userData()




E apresentei ele em um card






Ver código completo em https://github.com/nadiduno/knightsofthezodiac


Agora é tua vez de consumir toda a Api, e percorrer todos os cavaleiros



------------------------------

Em caso de ter erro quando guardes este projeto no teu github e não consigas fazer um push em teu próprio repositório te recomendo fazer


git  remote -v

git remote remove origin

git  remote -v

Com git remote -v, apresenta o repositório ao qual está linkado o projeto

Como git remote remove,  removes essa conexão e escreva novamente, para ver se deu certo, usar novamente git remote -v e deve sair em branco. Agora sim, podes fazer o teu git push, para subir o código.



------------------------------


Documentação: https://jsonbin.io/app/dashboard



By DevRel </💜NadiDuno



























https://api.jsonbin.io/v3/b/<BIN_ID>

https://jsonbin.io/app/bins#!

 https://jsonbin.io/api-reference/bins/update#request-headers


https://jsonbin.io/app/dashboard


Criarr uma conta

Seleccionar Bim

https://api.jsonbin.io/v3/b/

64ba1bd4b89b1e2299c1dbc0

https://api.jsonbin.io/v3/b/64ba1bd4b89b1e2299c1dbc0


Ahora podemos usar en nosso fecth

E apresentar nossa api publica

da uma boa olhada nos campos para chamar e usar o que deseja

para isso vamos a dar um console.loge

e no console do inspeccionar inspeccionar  

abrimos el arry que nos trae la API

Abrimos hasta el nivel donde deseamos pegar el dado

Esta aqui é a estructura a usar no script

é uma recurso gratuito por isso nos deu muitas gerarquias, porem esta genial para ir bricnando con un frontend


data["record"]["Zodic"]["0"]["name"]

data["record"]["Zodic"]["0"]["avatar"]

Eu peguei o name e avatr para meu frontend



Mais

UPDATE BINS API

You can Update your JSON bins using the Update Bins API, and you can enable the Version Control as well.

Note that you cannot update the Bin Permissions and Name. In-order to change the Bin Permissions, then check out Change Privacy API for more info.




Nenhum comentário:

Postar um comentário

Como Criar um Pull Request (PR) no GitHub

  Como Criar um Pull Request (PR) no GitHub Um Pull Request (PR) é um recurso essencial no GitHub que permite propor mudanças em um repositó...