Article cover

19.06.2022

50

Beğenme

614

Görüntülenme

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

Yorumlar

Kullanıcı yorumlarını görüntüleyebilmek için kayıt olmalısınız!

Yusuf Eren

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

Konum

İstanbul, TR

Eğitim

Bilgisayar Programcılığı - Sakarya Üniversitesi

© 2021 Patika Dev

facebook
twitter
instagram
youtube
linkedin

Disclaimer: The information /programs / events provided on https://patika.dev and https://risein.com are strictly for upskilling and networking purposes related to the technical infrastructure of blockchain platforms. We do not provide financial or investment advice and do not make any representations regarding the value, profitability, or future price of any blockchain or cryptocurrency. Users are encouraged to conduct their own research and consult with licensed financial professionals before engaging in any investment activities. https://patika.dev and https://risein.com disclaim any responsibility for financial decisions made by users based on information provided here.