วิธีใช้ admintrick.com API ใน JavaScript (NodeJS)

ในบทช่วยสอนนี้ ฉันจะสาธิตวิธีใช้ admintrick.com API ใน NodeJS

เพื่อแสดงสิ่งนี้ เราจะสร้างสคริปต์ง่ายๆ ที่เมื่อดำเนินการแล้ว จะพิมพ์ที่อยู่ IP ของเซิร์ฟเวอร์การค้นหาของ Google สคริปต์นี้จะใช้จุดสิ้นสุดระเบียน DNS ของ API ของ admintrick.com

ในการสร้าง เราจะใช้สามวิธี วิธีแรกใช้โมดูล https ในตัวใน NodeJS ตัวที่สองจะใช้โมดูล node-fetch สุดท้ายจะใช้ไลบรารีไคลเอนต์ axios

admintrick.com API คืออะไร

admintrick.com เป็นเว็บไซต์ที่ให้บริการเครื่องมือ API และทรัพยากรเพื่อสร้าง จัดการ และขยายธุรกิจออนไลน์ รวมอยู่ในเครื่องมือเหล่านี้คือ API ที่สามารถใช้ประโยชน์เพื่อจัดการประสิทธิภาพ ความปลอดภัย และการตรวจสอบเว็บไซต์สำหรับปัญหาของเว็บไซต์ API มีระดับฟรีมากมายที่คุณสามารถใช้ประโยชน์ได้

ข้อกำหนดเบื้องต้น

ในการปฏิบัติตามบทช่วยสอนนี้ คุณจะต้องเข้าใจ JavaScript รวมถึงคำสัญญาและไวยากรณ์ ES6 สำหรับซอฟต์แวร์ คุณควรมี NodeJS และโปรแกรมแก้ไขข้อความ เช่น Visual Studio Code ติดตั้งอยู่

คุณจะต้องมีบัญชี admintrick.com เพื่อรับคีย์ API สำหรับการตรวจสอบสิทธิ์เมื่อส่งคำขอ หากต้องการรับ ให้ไปที่หน้า Landing Page ของ API และสร้างบัญชีฟรี

หลังจากที่คุณสร้างบัญชีแล้ว คุณควรถูกเปลี่ยนเส้นทางไปยังแดชบอร์ด ซึ่งคุณจะพบคีย์ API ของคุณ

สร้างโครงการ

ในการเริ่มต้น ให้สร้างโฟลเดอร์โปรเจ็กต์และเปิดด้วยเทอร์มินัลที่คุณเลือก จากนั้นเรียกใช้คำสั่งด้านล่าง

npm init -y

คำสั่งดังกล่าวจะเริ่มต้นไดเร็กทอรีโครงการเป็นโครงการ NodeJS

ถัดไป เรียกใช้คำสั่งด้านล่าง ซึ่งจะติดตั้งการพึ่งพาทั้งหมดสำหรับโครงการของเรา

npm install dotenv axios node-fetch

หลังจากติดตั้งการพึ่งพาสำเร็จแล้ว ให้สร้างสคริปต์สามสคริปต์ในโฟลเดอร์รูทของโปรเจ็กต์ ได้แก่ vanilla.js, with-axios.js, with-fetch.js และไฟล์ .env เพื่อจัดเก็บตัวแปรสภาพแวดล้อมของเรา

ในที่สุดรูทโปรเจ็กต์ควรมีลักษณะดังนี้:

ถัดไป เปิดไฟล์ .env และเพิ่มคีย์ admintrick.com API ของคุณด้วยโค้ดบรรทัดต่อไปนี้:

API_KEY=<api key>

แทนที่ <คีย์ API> ด้วยคีย์ API จริงของคุณ

ด้วยวานิลลา.js

NodeJS มีโมดูล http และ https ในตัวที่เราสามารถใช้เพื่อสร้างคำขอของลูกค้า เราจะใช้วิธีนี้ก่อน

เปิดไฟล์ vanilla.js และเพิ่มโค้ดต่อไปนี้ที่ด้านบนเพื่อนำเข้าการอ้างอิงของโปรเจ็กต์

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

ต่อไป เราจะเรียกใช้ฟังก์ชัน config() เพื่อโหลดตัวแปรสภาพแวดล้อม จากนั้นเราจะเก็บคีย์ API และชื่อโฮสต์ไว้ในตัวแปร

config();

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

เมื่อเราเรียกใช้ฟังก์ชันคำขอเพื่อเริ่มต้นคำขอ HTTP ใน NodeJS เราจะต้องจัดเตรียมตัวเลือกสำหรับโฮสต์และปลายทางที่เราต้องการเชื่อมต่อ วิธี HTTP ที่เราจะใช้ และส่วนหัวสำหรับคำขอ ต่อไป เราจะสร้างตัวแปรที่จะเก็บตัวเลือกเหล่านี้

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

จนถึงตอนนี้ โค้ดในไฟล์ vanilla.js มีลักษณะดังนี้:

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

config();

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

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

ตอนนี้ เราสามารถดำเนินการเรียกฟังก์ชันการร้องขอที่ส่งผ่านวิธีตัวเลือก:

const req = request(options, response => {

  // we are going to add response handlers here

});

อย่างที่คุณเห็น ฟังก์ชันคำขอมี 2 อาร์กิวเมนต์ อย่างแรกคืออ็อบเจ็กต์ตัวเลือกที่เรากำหนดไว้ก่อนหน้านี้ ประการที่สองคือฟังก์ชันการเรียกกลับที่จะจัดการกับการตอบสนองจากเซิร์ฟเวอร์ ภายในฟังก์ชันเรียกกลับ เราสามารถเพิ่มตัวฟังเหตุการณ์เมื่อเซิร์ฟเวอร์ส่งข้อมูล ส่งข้อมูลเสร็จสิ้น หรือส่งข้อผิดพลาด

  แก้ไขปัญหา Amazon Fire Stick ช้า

ในการเพิ่มตัวจัดการการตอบกลับที่แตกต่างกัน ให้เพิ่มบรรทัดของรหัสต่อไปนี้ภายในฟังก์ชันการเรียกกลับ:

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);
});

ตัวแปรข้อมูลเป็นเพียงสตริงที่เราจะเก็บการตอบสนอง JSON ของเซิร์ฟเวอร์ในขณะที่ส่งกระแสข้อมูลกลับมาหาเรา

ในการเก็บข้อมูลจริง ๆ เราจะฟังวัตถุการตอบสนองในเหตุการณ์ข้อมูล เมื่อใดก็ตามที่เกิดเหตุการณ์นี้ เราจะผนวกกลุ่มข้อมูลที่ส่งโดยเซิร์ฟเวอร์ไปยังตัวแปรข้อมูล

จากนั้นเพื่อใช้ข้อมูลในที่สุด เราจะฟังเหตุการณ์เมื่อสิ้นสุดบนวัตถุตอบกลับ สิ่งนี้จะถูกเรียกเมื่อข้อมูลทั้งหมดถูกส่งจากเซิร์ฟเวอร์และได้สิ้นสุดการตอบกลับ

สุดท้ายนี้ เราจะรับฟังข้อผิดพลาดและบันทึกลงในคอนโซลหากเกิดขึ้น

ดังนั้นการเรียกใช้ฟังก์ชันคำขอควรมีลักษณะดังนี้

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();

ในที่สุด ไฟล์ควรมีลักษณะดังนี้:

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

config();

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

const options = {
  hostname: "api.admintrick.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();

ตอนนี้ หากคุณกลับไปที่เทอร์มินัลแล้วเรียกใช้สคริปต์โดยใช้คำสั่ง node vanilla.js คุณควรได้ผลลัพธ์ต่อไปนี้

[
  { 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 }
]

นั่นมันสำหรับส่วนแรก ข้อเสียที่เห็นได้ชัดของการใช้โมดูล HTTP/S ในตัวคือมีความละเอียดถี่ถ้วน ไลบรารีของไคลเอ็นต์ เช่น node-fetch จะช่วยคุณสร้างโปรแกรมเดียวกัน แต่มีโค้ดที่ชัดเจนและรัดกุมยิ่งขึ้น

  วิธีใส่นาฬิกาใน PowerPoint

ด้วยโหนดดึง

หากต้องการสร้างสคริปต์เดียวกันแต่ใช้ node-fetch ให้เปิดไฟล์ with-fetch.js และเพิ่มการนำเข้าต่อไปนี้ที่ด้านบน

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

จากนั้นเรียกใช้ฟังก์ชัน config เพื่อกำหนดค่าตัวแปรสภาพแวดล้อมและตั้งค่าคงที่สำหรับ API_KEY และโฮสต์ที่มีระเบียน A ที่เราจะขอ

config();

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

ต่อไป เราจะกำหนดฟังก์ชันเพื่อทำการเรียก API ฟังก์ชันนี้จะเป็นแบบอะซิงโครนัส

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

ภายในเนื้อความของฟังก์ชัน เราต้องเรียกใช้ฟังก์ชันดึงข้อมูลที่เรานำเข้าก่อนหน้านี้จากแพ็กเกจ node-fetch

const response = await fetch("https://api.admintrick.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();

ไฟล์ของคุณควรมีลักษณะดังนี้:

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.admintrick.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();

และการรันสคริปต์นั้นด้วยโหนด with-fetch.js ควรสร้างผลลัพธ์ต่อไปนี้:

[
  { 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 }
]

กับ Axios

สุดท้ายนี้ เราจะใช้ Axios เพื่อเข้าถึง admintrick.com API ในการเริ่มต้น ให้นำเข้าแพ็คเกจ dotenv และ axios

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

ต่อไป ให้เรียกใช้ฟังก์ชัน config เพื่อตั้งค่าตัวแปรสภาพแวดล้อม นอกจากนี้ ให้เก็บชื่อโฮสต์และคีย์ API ไว้ในค่าคงที่แยกกัน

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

ตอนนี้ ให้เก็บ URL ของจุดปลาย API ไว้ในค่าคงที่อื่น

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

ต่อไป มาเก็บข้อมูลที่จะส่งเป็นส่วนหนึ่งของเนื้อความคำขอในค่าคงที่อื่น

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

จากนั้นสิ่งสุดท้ายที่ต้องทำก่อนส่งคำขอคือการจัดเก็บตัวเลือกเมตาเช่นส่วนหัวในค่าคงที่อื่น

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

สุดท้ายนี้ เรามาเรียกใช้ฟังก์ชันโพสต์ที่เรานำเข้ามาก่อนหน้านี้ โดยส่งผ่านตัวแปร url ข้อมูล และตัวเลือกที่เรากำหนดไว้ก่อนหน้านี้เป็นอาร์กิวเมนต์ เนื่องจากสิ่งนี้จะคืนสัญญา คุณจึงสามารถใช้then เพื่อจัดการกับการตอบสนองเมื่อได้รับคืนในที่สุด

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

ในตอนท้ายของทั้งหมดนี้ โค้ดในไฟล์ with-axios ควรมีลักษณะดังนี้:

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

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

const url = "https://api.admintrick.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);
});

และเมื่อคุณรันสคริปต์โดยใช้โหนด with-axios.js สคริปต์ควรแสดงผลลัพธ์ต่อไปนี้:

[
  { 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 }
]

คำพูดสุดท้าย

ในโพสต์นี้ เราได้สร้างสคริปต์เดียวกันโดยใช้แนวทางที่แตกต่างกันสามวิธี วัตถุประสงค์ของสิ่งนี้คือเพื่อเน้นว่าการใช้ admintrick.com API นั้นง่ายเพียงใด และเราจะใช้งาน Javascript ได้อย่างไร โดยเฉพาะ NodeJS

  วิธีปลดล็อกโมเด็ม Huawei

สามารถใช้ปลายทางอื่นๆ ได้ในลักษณะเดียวกัน การเปลี่ยนแปลงทั้งหมดนั้นคือจุดสิ้นสุดและพารามิเตอร์ที่คุณต้องส่งโดยเป็นส่วนหนึ่งของเนื้อหาคำขอ เอกสารประกอบสำหรับ API สามารถพบได้ที่นี่

เรื่องล่าสุด

x