Article cover

19.06.2022

47

Like

368

Views

NodeJS ile Etsy API Kullanımı | Bölüm 1

Merhaba, bu yazımızda NodeJS ile Etsy API kullanımını inceleyeceğiz. Dilerseniz ingilizce dökümantasyon'a buradan ulaşabilirsiniz. https://developer.etsy.com/documentation/reference/


  • ' etsyapp ' adlı bir klasör oluşturup içine server.js adlı boş bir dosya oluşturalım.
  • package.json adlı bir dosya oluşturup içine aşağıdaki kodu yerleştirelim.
{
  "name": "etsyapp",
  "version": "0.0.1",
  "description": "A simple Node app that makes requests to Etsy’s Open API.",
  "main": "server.js",
  "scripts": {
    "start": "node server.js"
  },
  "dependencies": {
    "express": "4.x",
    "hbs": "^4.1.2",
    "node-fetch": "^2.6.1"
  },
  "engines": {
    "node": ">=12 <15"
  },
  "license": "MIT"
}
Dikkat : Node versiyonunuz 12 - 15 arasında değilse uygulamamız çalışmayacaktır.


  • VS Code'u açıp terminale geliyoruz.
  • npm install express yazarak express'i projemize dahil edelim.
  • Server.js adlı dosyayı açıp içine aşağıdaki kodu yerleştiriyoruz.
const express = require("express");
const app = express();


app.get("/", (req, res) => {
  res.send("Test");
});


const port = 3000;
app.listen(port, () => {
  console.log(`http://localhost:${port}'da çalışmaya başladı`);
});

  • Ben nodeJS ile çalışırken live reload yapısı nedeniyle nodemon kullanıyorum. Dilerseniz npm i nodemon yazarak kurabilirsiniz. Veya sadece node ile de projeye devam edebilirsiniz.
  • Terminali açıp ` node server.js ` yazıyoruz.


her şey yolundaysa ` http://localhost:3000 ` adresinde Test yazısı karşımıza çıkacak.

Ben bu projede .ejs kullanacağım. İsterseniz başka bir view engine de kullanabilirsiniz.


Basit server'ımızı oluşturduk. Şimdi Etsy ile Authentication kısmına geçiyoruz.


Bu linkten uygulama oluşturup Etsy API Key'i alabilirsiniz ( uygulamayı commercial seçmeyiniz! ) ; https://www.etsy.com/developers/your-apps

Uygulamamızın API Key'ini aldıktan sonra uygulamamızı geliştirmeye devam edelim ;


  • npm install node-fetch ile fetch modülümüzü kuruyoruz.
  • Modülümüzü import ediyoruz : const fetch = require("node-fetch");
  • Ardından API Key'imizi test ediyoruz ;
const express = require("express");
const fetch = require("node-fetch");
const app = express();


app.set("view engine", "ejs");


app.get("/", (req, res) => {
  res.send("Test");
});


app.get("/ping", async (req, res) => {
  const requestOptions = {
    method: "GET",
    headers: {
      "x-api-key": " <API Keyiniz> ",
    },
  };


  const response = await fetch(
    "https://api.etsy.com/v3/application/openapi-ping",
    requestOptions
  );


  if (response.ok) {
    const data = await response.json();
    res.send(data);
  } else {
    res.send("Başarısız İşlem!");
  }
});


const port = 3000;
app.listen(port, () => {
  console.log(`http://localhost:${port}'da çalışmaya başladı`);
});

await-async yapısını bildiğinizi varsayarak anlatmadan geçiyorum. Bilmiyorsanız Node.JS ile backend patikasından ilgili ders'e ulaşabilirsiniz.
  • /ping adresine yaptığımız istekte `response` değişkeniyle openapi-ping adresine bir istekte bulunduk.
  • requestOptions değişkeninde ise isteğimizin method ve headers kısmını yolladık.
  • headers kısmımnda API key'imizi yolluyoruz. method'umuz ise `GET`
  • Alt taraftaki if-else koduyla da isteğimiz başarılı mı değil mi kontrol ediyoruz.
  • response.ok komutu response'un status code'u 200 ise true döner (Status Code : 200 demek işlem başarılı demektir).
  • eğer işlemimiz başarılı ise data adlı değişken ile response'u yakalıyoruz ve data'yı gönderiyoruz.
  • .json() komutu ile gelen response'u json haline getiriyoruz(parse).


Kodumuz hazırsa hadi gelin test edelim.

Nodemon server.js ille uygulamamızı çalıştıralım.

http:localhost:3000/ping adresine girelim.

Eğer her şey yolundaysa karşımıza şöyle bir kod çıkacak ;

{"application_id":123456789}


Tebrikler! API Key ile ilk işleminizi yaptınız. Sonraki bölümde daha ileri işlemler yapacağız.

Sonraki bölümde / Yorum Çekme/ Ürün Yükleme / Ürün Özelliği Çekme / konularından birini yapacağız.

Yorumlarda sonraki konumuz için fikir belirtebilir, aklınıza takılan soruları paylaşabilir veya yazıyla ilgili yorumlarınızı benimle paylaşabilirsiniz.

(İlk blog yazım olduğu için hatalar olduysa affola :) umarım hoşunuza gitmiştir.)

Node.js
Node.js Backend Patikası Projeleri
JavaScript

Comments

You need to log in to be able to comment!

Yusuf Eren

NodeJS, Typescript, Microservices, Design Patterns, AWS, MongoDB

Location

İstanbul, TR

Education

Bilgisayar Programcılığı - Sakarya Üniversitesi

© 2021 Patika Dev

facebook
twitter
instagram
youtube
linkedin