Como usar a API etechpt.com em JavaScript (NodeJS)

Neste tutorial, vou demonstrar como usar a API etechpt.com no NodeJS.

Para demonstrar isso, vamos construir um script simples que, quando executado, imprime o endereço IP do servidor de busca do Google. Este script usará o endpoint de registro DNS da API do etechpt.com.

Para construí-lo, vamos usar três abordagens, a primeira usa o módulo https embutido no NodeJS. O segundo usará o módulo node-fetch. Em seguida, o último usará a biblioteca cliente axios.

O que é a API etechpt.com?

etechpt.com é um site que fornece ferramentas, APIs e recursos para criar, gerenciar e expandir um negócio online. Incluída nessas ferramentas está uma API que pode ser aproveitada para gerenciar o desempenho, a segurança e a auditoria de um site para problemas do site. A API tem um nível gratuito generoso que você pode aproveitar.

Pré-requisitos

Para seguir este tutorial, você precisará entender de JavaScript, incluindo promessas e sintaxe ES6. Quanto ao software, você deve ter o NodeJS e um editor de texto como o Visual Studio Code instalado.

Você precisará de uma conta etechpt.com para obter uma chave de API para autenticação ao fazer solicitações. Para obter um, vá para a página de destino da API e crie uma conta gratuita.

Depois de criar a conta, você deve ser redirecionado para o painel, onde encontrará sua chave de API.

Construindo o projeto

Para começar, crie uma pasta de projeto e abra-a com um terminal de sua escolha, depois execute o comando abaixo.

npm init -y

O comando acima inicializará o diretório do projeto como um projeto NodeJS.

Em seguida, execute o comando abaixo, que instalará todas as dependências do nosso projeto

npm install dotenv axios node-fetch

Depois que as dependências forem instaladas com sucesso, crie três scripts na pasta raiz do projeto, a saber, vanilla.js, with-axios.js, with-fetch.js e um arquivo .env para armazenar nossas variáveis ​​ambientais.

No final, a raiz do projeto deve ficar assim:

Em seguida, abra o arquivo .env e adicione sua chave de API etechpt.com com a seguinte linha de código:

API_KEY=<api key>

Substitua por sua chave de API real.

Com Baunilha.js

O NodeJS possui um módulo http e https embutido que podemos usar para fazer solicitações de clientes. Vamos usar essa abordagem primeiro.

  17 Plataforma de cursos online de contabilidade para todos

Abra o arquivo vanilla.js e adicione as seguintes linhas de código na parte superior para importar as dependências do projeto.

import { request } from "https";
import { config } from "dotenv";

Em seguida, vamos chamar a função config() para carregar variáveis ​​ambientais. Em seguida, vamos armazenar a chave da API e o nome do host em variáveis.

config();

const apiKey = process.env.API_KEY;
const host="google.com";

Quando chamamos a função de solicitação para iniciar uma solicitação HTTP no NodeJS, precisaremos fornecer opções para o host e o endpoint ao qual queremos nos conectar, o método HTTP que usaremos e os cabeçalhos da solicitação. Então, a seguir, vamos criar uma variável que armazenará essas opções.

const options = {
  hostname: "api.etechpt.com.com",
  path: "/dnsrecord",
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": apiKey,
  },
};

Até agora, o código no arquivo vanilla.js é assim:

import { request } from "https";
import { config } from "dotenv";

config();

const apiKey = process.env.API_KEY;
const host="google.com"

const options = {
  hostname: "api.etechpt.com.com",
  path: "/dnsrecord",
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": apiKey,
  },
};

Agora podemos continuar a chamar a função request passando o método options:

const req = request(options, response => {

  // we are going to add response handlers here

});

Como você pode ver, a função de solicitação recebe dois argumentos. O primeiro é o objeto de opções que definimos anteriormente. A segunda é uma função de retorno de chamada que manipulará a resposta do servidor. Dentro da função callback, podemos adicionar ouvintes de eventos para quando o servidor enviar dados, terminar de enviar dados ou enviar um erro.

Para adicionar os diferentes manipuladores de resposta, adicione as seguintes linhas de código dentro da função de retorno de chamada:

let data = "";

response.on("data", chunk => {
  data += chunk;
});

response.on("end", () => {
  console.log(JSON.parse(data).data.A);
});

response.on("error", error => {
  console.log(error);
});

A variável de dados é simplesmente uma string onde vamos armazenar a resposta JSON do servidor à medida que ela é transmitida de volta para nós.

Para realmente armazenar os dados, vamos ouvir o evento on data do objeto de resposta. Sempre que esse evento for acionado, anexaremos o bloco de dados enviado pelo servidor à variável de dados.

Então, para finalmente usar os dados, vamos ouvir o evento on end no objeto de resposta. Isso será chamado quando todos os dados forem enviados do servidor e tiver finalizado sua resposta.

Por fim, vamos ouvir os erros e registrá-los no console, se surgirem.

Portanto, a chamada para a função de solicitação deve ficar assim

const req = request(options, response => {

  let data = "";

  response.on("data", chunk => {
    data += chunk;
  });

  response.on("end", () => {
    console.log(JSON.parse(data).data.A);
  });

  response.on("error", error => {
    console.log(error);
  });

});

Por fim, precisamos gravar alguns dados no corpo da solicitação e encerrar a solicitação.

req.write(JSON.stringify({ url: host, types: ["A"] }));
req.end();

No final, o arquivo deve ficar assim:

import { request } from "https";
import { config } from "dotenv";

config();

const apiKey = process.env.API_KEY;
const host="google.com"

const options = {
  hostname: "api.etechpt.com.com",
  path: "/dnsrecord",
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": apiKey,
  },
};

const req = request(options, response => {

  let data = "";

  response.on("data", chunk => {
    data += chunk;
  });

  response.on("end", () => {
    console.log(JSON.parse(data).data.A);
  });

  response.on("error", error => {
    console.log(error);
  });

});

req.write(JSON.stringify({ url: host, types: ["A"] }));
req.end();

Agora, se você voltar ao terminal e executar o script usando o comando node vanilla.js, deverá obter a seguinte saída.

[
  { address: '172.253.122.101', ttl: 247 },
  { address: '172.253.122.113', ttl: 247 },
  { address: '172.253.122.100', ttl: 247 },
  { address: '172.253.122.102', ttl: 247 },
  { address: '172.253.122.138', ttl: 247 },
  { address: '172.253.122.139', ttl: 247 }
]

É isso para a primeira parte. A desvantagem óbvia de usar os módulos HTTP/S integrados é que ele é detalhado. Bibliotecas de cliente, como node-fetch, ajudarão você a criar o mesmo programa, mas com um código mais claro e conciso.

  6 maneiras de corrigir o sinal sonoro do disco rígido externo Seagate e não reconhecido

Com busca de nó

Para criar o mesmo script, mas com node-fetch, abra o arquivo with-fetch.js e adicione as seguintes importações ao topo.

import fetch from "node-fetch";
import { config } from "dotenv";

Em seguida, chame a função config para configurar variáveis ​​ambientais e configurar constantes para a API_KEY e o host cujos registros A serão solicitados.

config();

const apiKey = process.env.API_KEY;
const host="google.com"

Em seguida, vamos definir uma função para fazer a chamada da API. Esta função será assíncrona.

async function request() {
  // The function body will go here
}

Dentro do corpo da função, precisamos chamar a função fetch que importamos anteriormente do pacote node-fetch.

const response = await fetch("https://api.etechpt.com.com/dnsrecord", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "x-api-key": apiKey,
    },
    body: JSON.stringify({ url: host, types: ["A"] }),
});

Então, após a chamada para a função de busca, gostaríamos de analisar nossa resposta e lidar com quaisquer erros que possam surgir.

if (response.ok) {
    const { data } = await response.json();

    console.log(data.A);
  } else {
    console.log(response);
  }

Neste ponto, adicione uma chamada à função após sua solicitação.

request();

Seu arquivo agora deve ficar assim:

import fetch from "node-fetch";
import { config } from "dotenv";

config();

const apiKey = process.env.API_KEY;
const host = "google.com";

async function request() {
  const response = await fetch("https://api.etechpt.com.com/dnsrecord", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "x-api-key": apiKey,
    },
    body: JSON.stringify({ url: host, types: ["A"] }),
  });

  if (response.ok) {
    const { data } = await response.json();

    console.log(data.A);
  } else {
    console.log(response);
  }
}

request();

E executar esse script com o nó with-fetch.js deve produzir a seguinte saída:

[
  { address: '172.253.122.113', ttl: 134 },
  { address: '172.253.122.138', ttl: 134 },
  { address: '172.253.122.100', ttl: 134 },
  { address: '172.253.122.139', ttl: 134 },
  { address: '172.253.122.102', ttl: 134 },
  { address: '172.253.122.101', ttl: 134 }
]

Com Axios

Por fim, usaremos o Axios para acessar a API etechpt.com. Para começar, vamos importar os pacotes dotenv e axios.

import axios from "axios";
import { config } from "dotenv";

Em seguida, vamos chamar a função config para configurar as variáveis ​​ambientais. Além disso, vamos armazenar o nome do host e a API Key em constantes separadas.

const host = "google.com";
const key = process.env.API_KEY;

Agora, vamos armazenar a URL do endpoint da API em outra constante

const url = "https://api.etechpt.com.com/dnsrecord";

Em seguida, vamos armazenar os dados que serão enviados como parte do corpo da solicitação em outra constante

const data = { url: host, types: ["A"] };

Então, a última coisa a fazer antes de enviar a solicitação será também armazenar as opções meta, como cabeçalhos, em outra constante.

const options = {
  headers: {
    "Content-Type": "application/json",
    "x-api-key": key,
  },
};

Por fim, vamos fazer a chamada para a função post que importamos anteriormente, passando as variáveis ​​url, data e options que definimos anteriormente como argumentos. Como isso retornará uma promessa, você poderá usá-la para lidar com a resposta quando ela for retornada.

axios.post(url, data, options).then(({ data }) => {
  console.log(data.data.A);
});

Ao final de tudo isso, o código no arquivo with-axios deve ficar assim:

import axios from "axios";
import { config } from "dotenv";

config();
const host = "google.com";
const key = process.env.API_KEY;

const url = "https://api.etechpt.com.com/dnsrecord";
const data = { url: host, types: ["A"] };
const options = {
  headers: {
    "Content-Type": "application/json",
    "x-api-key": key,
  },
};

axios.post(url, data, options).then(({ data }) => {
  console.log(data.data.A);
});

E quando você executa o script usando o node with-axios.js, ele deve exibir a seguinte saída:

[
  { address: '142.251.163.138', ttl: 60 },
  { address: '142.251.163.113', ttl: 60 },
  { address: '142.251.163.100', ttl: 60 },
  { address: '142.251.163.101', ttl: 60 },
  { address: '142.251.163.102', ttl: 60 },
  { address: '142.251.163.139', ttl: 60 }
]

Palavras finais

Neste post, criamos o mesmo script com três abordagens diferentes. O objetivo disso foi destacar como é fácil usar a API etechpt.com e como podemos usá-la em Javascript, especificamente NodeJS.

  Como adicionar uma imagem de fundo ao Google Agenda

Todos os outros endpoints podem ser usados ​​de maneira semelhante; tudo o que muda é o endpoint e os parâmetros que você precisa enviar como parte do corpo da solicitação. A documentação da API pode ser encontrada aqui.