GitHub API ile Programlı Olarak Nasıl Etkileşim Kurulur: Bir Node.js Geliştiricisinin Rehberi

Node.js ve Express ile GitHub API'sının gücünü öğrenin! Express sunucusu kurma, kullanıcı profili ve repoları çekme, yetkilendirilmiş istekler yapma rehberi.

Efe Demir

Efe Demir

5 June 2025

GitHub API ile Programlı Olarak Nasıl Etkileşim Kurulur: Bir Node.js Geliştiricisinin Rehberi

GitHub, dünya çapındaki geliştiriciler için işbirliği, kod paylaşımı ve sürüm kontrolü sağlayan temel bir platformdur. GitHub'ın web arayüzü sağlam işlevsellik sunarken, GitHub ile programlı olarak etkileşim kurmak isteyebileceğiniz birçok senaryo vardır. İşte GitHub API'sinin devreye girdiği yer burasıdır.

GitHub API, geliştiricilerin iş akışlarını otomatikleştirmesine, veri almasına ve GitHub'ın güçlü özelliklerini doğrudan uygulamalarına entegre etmesine olanak tanır. İster kullanıcı bilgisi almak, ister depoları listelemek veya sorunları ve çekme isteklerini yönetmek isteyin, GitHub API, GitHub ile programlı olarak etkileşim kurmanın esnek ve verimli bir yolunu sunar ve bu kılavuzda nasıl kullanılacağını öğreneceğiz!

Önkoşullar

Node.js ile GitHub API'sini kullanmaya başlamadan önce, yerinde olması gereken birkaç önkoşul vardır. Bu bölüm, bu kılavuzu takip etmek için ihtiyacınız olacak temel gereksinimleri ve bilgileri özetleyecektir.

1. JavaScript ve Node.js Hakkında Temel Bilgi

Node.js ile GitHub API'sini etkili bir şekilde kullanmak için, özellikle HTTP istekleri yaparken sıklıkla kullanılan bu kavramlar olan asenkron programlama ve vaatler olmak üzere, JavaScript hakkında temel bir anlayışa sahip olmalısınız. Bir proje kurmak ve bağımlılıkları yüklemek dahil olmak üzere Node.js'ye aşinalık da önemlidir.

2. GitHub Hesabı

GitHub API'sine erişmek için bir GitHub hesabına ihtiyacınız vardır. Henüz bir hesabınız yoksa, GitHub'da ücretsiz kaydolabilirsiniz. Ayrıca, isteklerinizi doğrulamak için kişisel bir erişim belirteci oluşturmanız gerekecektir. Bu belirteci nasıl oluşturacağımızı daha sonraki bir bölümde ele alacağız.

3. Sisteminizde Yüklü Node.js

Makinenizde Node.js'nin yüklü olduğundan emin olun. Henüz yüklemediyseniz, en son sürümü resmi Node.js web sitesinden indirebilirsiniz. Bu eğitim Node.js kullanacaktır, bu nedenle yüklü olması, sağlanan kod örneklerini çalıştırmak için çok önemlidir.

4. RESTful API'ler Hakkında Temel Bilgi

GitHub API bir RESTful API olduğundan, REST API'lerin nasıl çalıştığına dair temel bir anlayışa sahip olmak faydalı olacaktır. Bu, HTTP yöntemlerini (GET, POST, PUT, DELETE), durum kodlarını ve JSON yanıtlarını nasıl işleyeceğinizi anlamayı içerir.

5. Bir Kod Düzenleyici

Visual Studio Code, Sublime Text veya Atom gibi bir kod düzenleyici veya entegre geliştirme ortamı (IDE), kodunuzu verimli bir şekilde yazmanıza ve yönetmenize yardımcı olacaktır. Bu eğitim için rahat ettiğiniz herhangi bir kod düzenleyici işe yarayacaktır.

Ortamınızı Kurma

GitHub API'sine istek göndermeye başlamadan önce, geliştirme ortamımızı kurmamız gerekir. Bu bölümde, Node.js'yi kurma, yeni bir proje başlatma ve gerekli kitaplıkları yükleme adımlarını ele alacağız.

Adım 1: Node.js'yi Yükleyin

Henüz Node.js'yi yüklemediyseniz, en son sürümü resmi Node.js web sitesinden indirin. İşletim sisteminize özel yükleme talimatlarını izleyin. Node.js'nin doğru yüklendiğini doğrulamak için, terminalinizi veya komut isteminizi açın ve şunu çalıştırın:

node -v

Bu komut, makinenize yüklü olan Node.js'nin sürüm numarasını görüntülemelidir.

Adım 2: Yeni Bir Node.js Projesi Başlatın

Ardından, projemiz için yeni bir dizin oluşturacak ve npm (Node Package Manager) ile başlatacağız. Terminalinizi açın ve aşağıdaki komutları çalıştırın:

mkdir github-api-tutorial
cd github-api-tutorial
npm init -y

npm init -y komutu, projenin bağımlılıklarını yönetmek için gerekli olan varsayılan ayarlarla bir package.json dosyası oluşturur.

Adım 3: Gerekli Kütüphaneleri Yükleyin

GitHub API ile etkileşim kurmak için hem express hem de bir HTTP istemci kütüphanesine ihtiyacımız var. Bu eğitimde, Node.js için vaat tabanlı bir HTTP istemcisi olan axios'u kullanacağız. axios'u çalıştırarak yükleyin:

npm install express axios

Ek olarak, ortam değişkenlerini güvenli bir şekilde yönetmek için dotenv'ye ihtiyacımız olabilir. Bu paket, ortam değişkenlerini bir .env dosyasından process.env'ye yüklememizi sağlar; bu, API belirteçleri gibi hassas bilgileri depolamak için kullanışlıdır. dotenv'yi çalıştırarak yükleyin:

npm install dotenv

Adım 4: Bir .env Dosyası Oluşturun

GitHub kişisel erişim belirtecinizi depolamak için proje dizininizin kök dizininde bir .env dosyası oluşturun. Bu dosya, hassas bilgilerinizi güvende tutmak için sürüm kontrolüne dahil edilmemelidir.

GITHUB_TOKEN=your_personal_access_token_here

your_personal_access_token_here ifadesini gerçek GitHub kişisel erişim belirtecinizle değiştirin. Bu belirteci nasıl oluşturacağımızı daha sonraki bir bölümde ele alacağız.

Adım 5: Proje Yapısını Kurun

Projenizin kök dizininde index.js adlı yeni bir dosya oluşturun. Bu dosya, Node.js uygulamamız için ana giriş noktası olarak hizmet verecektir.

Projenizi daha da genişletmeyi planlıyorsanız, temel bir klasör yapısı da kurabilirsiniz. Basit bir yapı şöyle görünebilir:

github-api-tutorial/
├── node_modules/
├── .env
├── index.js
├── package.json
└── package-lock.json

Bir GitHub Kişisel Erişim Belirteci Oluşturma

Kimliği doğrulanmış uç noktalara erişmek ve API hız sınırlarınızı artırmak için bir GitHub kişisel erişim belirteci gerekir. Github'ın bir erişim belirteci oluşturma konusunda harika bir rehberi var, aşağıda bulabilirsiniz;

Adımlar da kolayca takip etmeniz için aşağıda özetlenmiştir :)

  1. GitHub hesabınıza giriş yapın ve Ayarlar'a gidin.
  2. Sol kenar çubuğunda, Geliştirici ayarları'na tıklayın.
  3. Kişisel erişim belirteçleri ve ardından Belirteçler (klasik)'e tıklayın.
  4. Yeni belirteç oluştur düğmesine tıklayın.
  5. Belirtecin amacını açıklayan bir not sağlayın (örneğin, "GitHub API Eğitimi").
  6. Bu belirtece vermek istediğiniz kapsamları veya izinleri seçin. Bu eğitim için, repo'yu (depo erişimi için) ve user'ı (kullanıcı bilgilerine erişmek için) seçin. Kapsamları özel ihtiyaçlarınıza göre ayarlayabilirsiniz.
  7. Belirteç oluştur'a tıklayın.
  8. Oluşturulan belirteci kopyalayın ve daha önce açıklandığı gibi .env dosyanıza kaydedin. Not: Bu belirtece bir parola gibi davranın ve asla kamuya açık olarak paylaşmayın.

GitHub API İstekleri İçin Rotalarla Bir Express Uygulaması Kurma

İki rotaya sahip temel bir Express sunucusu oluşturalım: biri bir GitHub kullanıcısının profilini getirmek, diğeri ise depolarını getirmek için.

index.js dosyanızın nasıl görünebileceği aşağıdadır:

// Gerekli modülleri içe aktar
require('dotenv').config();
const express = require('express');
const axios = require('axios');

const app = express();

// JSON ve URL kodlu verileri ayrıştırmak için ara yazılım
app.use(express.json());
app.use(express.urlencoded({ extended: true }));

// GitHub kullanıcı profilini getirme rotası
app.get('/user/profile', async (req, res) => {
    try {
        const response = await axios.get('https://api.github.com/user', {
            headers: {
                'Authorization': `Bearer ${process.env.GITHUB_TOKEN}`
            }
        });
        res.json(response.data);  // Kullanıcı profil verilerini JSON yanıtı olarak gönder
    } catch (error) {
        res.status(500).json({ error: 'Kullanıcı profilini getirirken hata oluştu', details: error.message });
    }
});

// GitHub kullanıcı depolarını getirme rotası
app.get('/user/repos', async (req, res) => {
    const username = req.query.username || 'irorochad'; // Kullanıcı adı sağlanmazsa varsayılan olarak 'irorochad' olur
    try {
        const response = await axios.get(`https://api.github.com/users/${username}/repos`, {
            headers: {
                'Authorization': `Bearer ${process.env.GITHUB_TOKEN}`
            }
        });
        res.json(response.data);  // Kullanıcı depoları verilerini JSON yanıtı olarak gönder
    } catch (error) {
        res.status(500).json({ error: 'Kullanıcı depolarını getirirken hata oluştu', details: error.message });
    }
});

// Sunucuyu başlat
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
    console.log(`Sunucu http://localhost:${PORT} adresinde çalışıyor`);
});
Daha okunabilir hale getirmek için denetleyicileri kullanmayı bile düşünebilirsiniz.

Kodun Açıklaması:

Gerekli Modülleri İçe Aktar:

Ara Yazılımı Kur:

Rotalar Oluştur:

Hata İşleme:

Sunucuyu Başlat:

3. .env Dosyanızı Güncelleyin

.env dosyanızın aşağıdakileri içerdiğinden emin olun:

GITHUB_TOKEN=your_personal_access_token_here
PORT=3000

your_personal_access_token_here ifadesini gerçek GitHub kişisel erişim belirtecinizle değiştirin.

4. Uygulamanızı Çalıştırma

Express uygulamanızı çalıştırmak için aşağıdaki komutu kullanın:

node index.js

Sunucunuz artık http://localhost:3000 adresinde çalışıyor olmalı ve şimdi uç noktalarımızı test etme zamanı!!!

Uç Noktalarımızı Apidog Kullanarak Test Etme

Apidog'un ana sayfası

Apidog, sağlam dokümantasyon, otomatik test ve gerçek zamanlı izleme sunarak API güvenliğini artırır. Apidog ayrıca, API'lerinizin kullanıcı verilerini etkili bir şekilde korumasını sağlayarak GDPR ve HIPAA gibi endüstri standartlarına uyulmasına yardımcı olur.

Ek olarak, Apidog ekip işbirliğini destekleyerek güvenliğe odaklı bir geliştirme ortamını teşvik eder. Apidog'u entegre ederek, verilerinizi ve kullanıcılarınızı çeşitli güvenlik tehditlerinden koruyarak güvenli, güvenilir ve uyumlu API'ler oluşturabilirsiniz.

button

Apidog'u veya web sürümünü yükledikten sonra, bir yeni proje oluşturarak ve ilk isteğinizi göndererek başlayabilirsiniz.

Kullanıcı Uç Noktasını Getirme Testi:

Bu uç noktayı çağırmadan önce, Apidog'a uç noktanın bir erişim belirteci gerektirdiğini ve isteği yapmasını sağlamak için erişim belirtecini Apidog'a sağlamamız gerektiğini söylememiz gerekecek.

Bunu, isteğin Auth bölümüne giderek ve belirteci aşağıda gösterildiği gibi gerektiği alana ekleyerek yapabiliriz;

Kullanıcı Uç Noktalarını Getir

Yukarıdaki ekran görüntüsünden de görebileceğiniz gibi, kullanıcı uç noktasını getirme beklendiği gibi iyi çalışıyor ve bunun nedeni sunucumuzun çalışır durumda olması ve ayrıca erişim belirtecini Apidog'a geçirmemizdir. Erişim belirteci olmadan istek başarısız olacak ve bu istek hakkında yanıtları göremeyeceğiz.

Depo Uç Noktasını Getirme Testi:

Depo uç noktalarını Getir sonuçları

Tıpkı kullanıcıları getir uç noktaları gibi, depoyu getir uç noktasının da aramayı yapmak için bir erişim belirteci gerekir.

Sonuç

GitHub API'sini bir Node.js uygulamasıyla entegre etmek, iş akışlarını otomatikleştirmek, verileri analiz etmek veya uygulamalarını GitHub'ın güçlü özellikleriyle geliştirmek isteyen geliştiriciler için bir olasılıklar dünyasının kapılarını açar. Bu kılavuzda, bir Express sunucusu kurma ve GitHub'dan kullanıcı profili bilgilerini ve depoları getirmek için rotalar oluşturma sürecini inceledik.

Belirtilen adımları izleyerek, artık Node.js ve Express kullanarak GitHub API ile nasıl etkileşim kurulacağına dair temel bir anlayışa sahipsiniz. Sorunları, çekme isteklerini ve daha fazlasını yönetmek gibi farklı uç noktaları keşfetmek için daha fazla rota ekleyerek bunu kolayca genişletebilirsiniz.

Explore more

Cursor ile Deepseek R1'i Yerel Olarak Nasıl Kullanılır

Cursor ile Deepseek R1'i Yerel Olarak Nasıl Kullanılır

Yerel DeepSeek R1'i Cursor IDE ile kurun ve yapılandırın. Özel, uygun maliyetli AI kodlama yardımı için.

4 June 2025

Android'de Gemma 3n Nasıl Çalıştırılır?

Android'de Gemma 3n Nasıl Çalıştırılır?

Google AI Edge Gallery'den Gemma 3n'i Android'e kurup çalıştırmayı öğrenin.

3 June 2025

GitHub Eylemleri ile Claude Kodunu Nasıl Kullanılır

GitHub Eylemleri ile Claude Kodunu Nasıl Kullanılır

Claude Code'u GitHub Actions ile entegre edin: Kod incelemeleri, hata düzeltmeleri ve özellik uygulamaları. Kurulum, iş akışları ve geliştiriciler için ipuçları.

29 May 2025

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin