PostgREST API Kurulumu ve Kullanımı: Yeni Başlayanlar İçin Rehber

Ashley Goolam

Ashley Goolam

14 November 2025

PostgREST API Kurulumu ve Kullanımı: Yeni Başlayanlar İçin Rehber

Kurumsal İçin Apidog

Şirket İçi (On-Premises) Dağıtım

SSO ve RBAC

SOC 2 Uyumlu

Apidog Enterprise'ı Keşfedin

Geliştiricilerin PostgreSQL veritabanları üzerinde RESTful API'ler oluşturmak için ne kadar zaman harcadığını hiç düşündünüz mü? Bu genellikle CRUD işlemleri için tekrar eden kod yazmayı, sorguları yönetmeyi ve güvenliği sağlamayı içerir; bu görevler proje hızınızı yavaşlatabilir. İşte PostgREST API'nin devreye girdiği yer burasıdır; veritabanınızı minimum çabayla kullanıma hazır bir API'ye dönüştüren modern bir alternatif sunar. Bu kapsamlı rehberde, PostgREST API'yi temel kavramlarından uygulamasına kadar derinlemesine inceleyeceğiz. İster geliştirmeyi hızlandırmak isteyen bir arka uç mühendisi olun, ister verimlilik arayan bir tam yığın geliştirici olun, PostgREST API'de ustalaşmak iş akışınızı dönüştürebilir.

Bu konuyu birlikte incelerken, pratik deneyimlerden edindiğim bilgileri paylaşacağım ve her bölümün bir öncekinin üzerine mantıksal olarak inşa edilmesini sağlayacağım. Sonunda, PostgREST API'yi bir sonraki projenize entegre etmeye hazır hissedeceksiniz. Temel bilgilerle başlayalım.

💡
Harika API Dokümantasyonu oluşturan mükemmel bir API Test aracı mı istiyorsunuz?

Geliştirici Ekibinizin maksimum üretkenlikle birlikte çalışması için entegre, Hepsi Bir Arada bir platform mu istiyorsunuz?

Apidog tüm taleplerinizi karşılar ve Postman'ı çok daha uygun bir fiyata değiştirir!
Düğme

PostgREST API Nedir? Genel Bakış

PostgREST API, PostgreSQL veritabanınızı otomatik olarak tam işlevli bir RESTful web hizmeti olarak sunan bağımsız bir araçtır. Beowulf tarafından geliştirilen bu araç, PostgreSQL'in sorgu dili (SQL) gücünden yararlanarak HTTP uç noktalarını dinamik olarak oluşturur ve çoğu durumda özel sunucu tarafı mantığına olan ihtiyacı ortadan kaldırır. Özünde, PostgREST API, veritabanı şemalarını, tabloları, görünümleri ve saklı yordamları API kaynakları olarak yorumlar ve GET, POST, PUT ve DELETE gibi standart HTTP yöntemleri aracılığıyla oluşturma, okuma, güncelleme ve silme (CRUD) işlemleri yapmanıza olanak tanır.

PostgREST API'yi özellikle cazip kılan şey, REST ilkelerine bağlı kalırken, ayrıntılı erişim kontrolü için Satır Düzeyi Güvenliği (RLS) gibi gelişmiş PostgreSQL özelliklerini içermesidir. Örneğin, URL parametrelerini kullanarak filtreler, sıralama ve sayfalama ile veri sorgulayabilirsiniz; ek bir ara katmana gerek yoktur. Bu yaklaşım yalnızca kod karmaşıklığını azaltmakla kalmaz, aynı zamanda API'nizin veritabanı değişiklikleriyle otomatik olarak senkronize kalmasını da sağlar.

ORM'ler ve API çerçevelerinin hakim olduğu bir ortamda, PostgREST API "veritabanı öncelikli" felsefesiyle öne çıkıyor. Kutudan çıktığı haliyle OpenAPI (Swagger) dokümantasyonunu destekleyerek, Apidog veya Swagger UI gibi araçlarla entegrasyon için geliştirici dostu bir yapı sunar. Analiz panoları, mobil arka uçlar veya mikro hizmetler gibi veri yoğun uygulamaları yönetiyorsanız, PostgREST API, PostgreSQL'in sağlamlığıyla ölçeklenebilen hafif ve performanslı bir çözüm sunar. İlerledikçe, bu API'nin veri katmanınız ile istemci uygulamalarınız arasındaki boşluğu sorunsuz bir şekilde nasıl köprülediğini göreceksiniz.

postgresql

PostgREST API'ye Başlarken: Kurulum ve Ayarlar

PostgREST API ile çalışmaya başlamak, temel olarak bir PostgreSQL örneği gerektirir. Neyse ki, kurulum özellikle bağımlılıkları izole eden ve dağıtımı basitleştiren Docker gibi konteynerleştirme araçları kullanıldığında oldukça basittir. İşletim sisteminiz (macOS, Windows veya Linux) için resmi web sitesinden indirerek makinenizde Docker Desktop'ın kurulu olduğundan emin olarak başlayın.

docker desktop

Docker hazır olduğunda, gerekli imajları çekin. Docker Desktop'ı açın, arama çubuğuna gidin ve API sunucusu için "postgrest/postgrest" imajını kurun. Benzer şekilde,

postgrest'i docker'a kur

PostgreSQL veritabanınızı görsel olarak yönetmek için "dpage/pgadmin4" araması yapın ve kurun.

pgadmin4'ü docker desktop'a kur

ve hafif bir PostgreSQL konteyneri için "postgres:alpine" aratıp kurun. Bu bileşenler PostgREST API'nin etrafındaki ekosistemi oluşturur.

Terminal aracılığıyla manuel bir PostgreSQL kurulumu için (Önerilen), bir konteyneri çalıştırmak üzere aşağıdaki komutu uygulayın:

docker run --name postgres-1 -e POSTGRES_PASSWORD=password -d -p 5431:5432 postgres:alpine

Burada, "password" değerini güvenli bir değerle değiştirin. Komut, PostgreSQL'i 5431 numaralı bağlantı noktasında başlatır ve dahili 5432'ye eşler. Başarılı olduğunda, Docker bir konteyner kimliği (uzun alfanümerik bir dize) döndürür; doğrulama için bunu not alın. Konteynerin durumunu onaylamak için docker ps komutunu çalıştırın.

docker'da postgres kurulumunu doğrula

PostgREST API yapılandırması için çok önemli olan kullanıcı rollerini doğrulamak için konteyner kabuğuna girin:

docker exec -it <container_id> sh

<container_id> yerine kendi kimliğinizi veya konteyner adınızı yazın. Kabuk içinde PostgreSQL'e bağlanın:

psql -U postgres -d postgres

("postgres" varsayılan kullanıcı olarak kabul edilmiştir; özelleştirilmişse ayarlayın. Benimki username olarak değiştirildiği gibi.) Ardından, \du ile rolleri listeleyin. "postgres" veya özel olanlar gibi rol adlarını içeren bu çıktıya daha sonra başvurulacaktır. Burada ek kullanıcılar oluşturabilir ve şemalara SELECT, INSERT, UPDATE veya DELETE gibi izinler atayabilirsiniz.

postgres docker rol adını görüntüle

Bu ön koşullar yerine getirildiğinde, çoklu konteyner uygulamalarını tanımlayan bir YAML dosyası olan Docker Compose'u kullanarak ortamınızı düzenlemeye hazırsınız. Proje dizininizde bir docker-compose.yaml dosyası oluşturun:

version: "3.9"
services:
  postgres_host:
    image: postgres:alpine
    environment:
      POSTGRES_USER: username
      POSTGRES_PASSWORD: password
      POSTGRES_DB: postgres
    volumes:
      - pgdata:/var/lib/postgresql/data
    ports:
      - "5431:5432"
  pgadmin:
    image: dpage/pgadmin4
    ports:
      - "5050:80"
    depends_on:
      - postgres_host
    environment:
      PGADMIN_DEFAULT_EMAIL: postgres@pgadmin.com
      PGADMIN_DEFAULT_PASSWORD: postgres
  postgrest:
    image: postgrest/postgrest
    depends_on:
      - postgres_host
    ports:
      - "3000:3000"
    environment:
      PGRST_DB_URI: "postgres://username:password@postgres_host:5432/postgres"
      PGRST_DB_SCHEMA: "public"
      PGRST_DB_ANON_ROLE: "username"
volumes:
  pgdata:

"username" ve "password" değerlerini kurulumunuza uyacak şekilde özelleştirin ve anonim erişim için PGRST_DB_ANON_ROLE'u \du çıktınızdaki bir role ayarlayın. Bu yapılandırma PostgreSQL, pgAdmin ve PostgREST API sunucusunu birbirine bağlar. Dosyayı kaydedin, ardından terminalinizde (örn. VS Code'un entegre terminali, Docker uzantısını kurduktan sonra) şunu çalıştırın:

docker compose up --build

Bu, hizmetleri oluşturur ve başlatır. YAML kimlik bilgilerini kullanarak http://localhost:5050 adresinden pgAdmin'e erişin, bağlantı ayrıntılarıyla (Hostname: postgres_host, Port: 5432, Username: username, Password: password) "postgres_host" adında bir sunucu ekleyin ve kaydedin. Artık http://localhost:3000 adresinde çalışan, veritabanı etkileşimlerine hazır bir PostgREST API'niz var.

vs code'da docker konteynerlerini çalıştırma

Örnek Bir Proje Oluşturma: PostgREST API'nin Adım Adım Test Edilmesi

PostgREST API'yi gerçekten takdir etmek için uygulamalı bir proje oluşturalım: çalışan kayıtlarını yönetmek için basit bir insan kaynakları veritabanı API'si. Bu örnek, bir "humans" tablosunda CRUD işlemlerini, düzenleme için Docker'ı ve API testi için Apidog'u kullanarak gösterir.

Adım 1: Ortamınızı Hazırlayın

Docker Desktop kurulu ve imajlar çekilmiş (PostgREST, pgAdmin4, postgres:alpine) durumdayken, daha önce belirtildiği gibi ilk PostgreSQL konteynerini çalıştırın. docker ps ile doğrulayın ve \du aracılığıyla kullanıcı rollerini not alın.

Adım 2: Yığınınızı Oluşturun

VS Code gibi bir kod düzenleyicide (sorunsuz konteyner yönetimi için Docker uzantısıyla geliştirilmiş), yukarıdaki docker-compose.yaml dosyasını oluşturun. İmaj adlarının tam olarak eşleştiğinden emin olun; uyuşmazlıklar başlatmayı durdurabilir. Gerekirse bağlantı noktalarını ayarlayın, ancak PostgreSQL'in harici bağlantı noktasını (5431) manuel kurulumunuzla tutarlı tutun. docker compose up --build ile başlatın. Hatalar için günlükleri izleyin; başarılı başlatma, hizmetlerin 5431 (DB), 5050 (pgAdmin) ve 3000 (PostgREST) bağlantı noktalarına bağlandığını gösterir.

Adım 3: pgAdmin'i Yapılandırın ve Tablo Oluşturun

http://localhost:5050 adresine gidin, YAML'deki PGADMIN_DEFAULT_EMAIL ve PASSWORD ile giriş yapın.

docker'da barındırılan pgadmin4'e giriş yap

Kontrol panelinin altında,

pg admin'e yeni bir sunucu ekle

yeni bir sunucu ekleyin: Adını "postgres_host" olarak belirleyin,

postgres ana bilgisayar adı

ardından Bağlantı sekmesinde Hostname: postgres_host, Port: 5432, Username: username, Password: password bilgilerini girin. Arayüze erişmek için kaydedin.

yeni postgres veritabanı yapılandırmasını kaydet

Bir tablo oluşturun: Veritabanları > postgres > Şemalar > public > Tablolar'a gidin, Tablolar'a sağ tıklayın ve Oluştur > Tablo'yu seçin. Adını "humans" olarak belirleyin. Sütunlara ekleyin:

bir tablo oluştur
bir tablo için yeni sütunlar oluştur

Kaydet'e tıklayın. Veri eklemek için "humans" tablosuna sağ tıklayın > Komut Dosyaları > INSERT Komut Dosyası'nı seçin. Örnek SQL ile değiştirin, örn.:

INSERT INTO public.humans (id, name, job) VALUES (1, 'Steph Curry', 'Pro Basketball Player');

Kaydı kalıcı hale getirmek için yürütün.

bir komut dosyasını yürüt

Adım 4: PostgREST API Kullanılabilirliğini Doğrulayın

Tarayıcınızda http://localhost:3000 adresini açın. /humans gibi kaynakları listeleyen bir Swagger 2.0 belirtim belgesi görmelisiniz; bu, PostgREST API'nin çalıştığını ve şema farkındalığına sahip olduğunu doğrular.

swagger 2.0 belirtimi

Adım 5: Apidog ile Test Edin

Apidog'u başlatın, yeni bir proje oluşturun ve http://localhost:3000/humans adresine bir GET isteği ekleyin ("humans" yerine tablo adınızı yazın). İsteği gönderin; şöyle bir JSON döndürür:

[
  {
    "id": 1,
    "name": "Steph Curry",
    "job": "Pro Basketball Player"
  }
]
apidog'da postgrest ile get isteği yapma

Sorgulama için bir Sorgu Parametresi ekleyin: Anahtar "name", Değer "eq.Steph Curry" ("eq" eşitliği belirtir). Bu, eşleşen kayıtları filtreler; eşleşmeyenler boş diziler döndürür.

yanlış veriyle postgrest ile test etme
Arama yapmak için yanlış veri kullanma
apidog'da postgrest api ile arama yapmak için doğru bilgileri kullanma
Arama yapmak için doğru bilgileri kullanma

Adım 6: CRUD İşlemlerini Keşfedin

PostgREST API, tam CRUD'da parlar. POST (oluşturma) için, Apidog'un gövdesini JSON olarak kullanın: {"name": "New Employee", "job": "Developer"} adresine http://localhost:3000/humans. PUT, yama uygulanmış verilerle http://localhost:3000/humans?id=eq.1 aracılığıyla güncellemeler yapar. DELETE, http://localhost:3000/humans?id=eq.1 kullanır. Sıralama (order=name.asc) veya sınırlar (limit=5) gibi gelişmiş filtreler kullanılabilirliği artırır. Kapsamlı örnekler için, resmi dokümantasyonu https://docs.postgrest.org/en/v14/references/api/tables_views.html adresinden inceleyin.

Bir saatten kısa süren bu proje, PostgREST API'nin hızlı prototiplemedeki yeteneğini göstermektedir. Güvenli, rol tabanlı erişim için PostgreSQL'e RLS politikaları ekleyerek ölçeklendirin.

Sıkça Sorulan Sorular

S1. PostgREST API'yi çalıştırmak için sistem gereksinimleri nelerdir?

Cevap: PostgREST API, PostgreSQL 9.4 veya sonraki bir sürümünü gerektirir ve konteynerize kurulumlar için Docker önerilir. Temel işlemler için en az 512MB RAM'e ihtiyaç duyan mütevazı donanımlarda verimli bir şekilde çalışır.

S2. PostgREST API, temel CRUD dışındaki karmaşık sorguları işleyebilir mi?

Cevap: Evet, gömülü RPC çağrıları ve görünümler aracılığıyla PostgreSQL'in tam SQL yeteneklerini destekler, bu da birleştirmelere, toplulaştırmalara ve uç noktalar olarak sunulan özel işlevlere olanak tanır.

S3. PostgREST API veri güvenliğini nasıl sağlar?

Cevap: PostgreSQL'in Satır Düzeyi Güvenliği ve rol tabanlı izinleriyle yerel olarak entegre olur, API tarafı güvenlik açıkları olmadan veritabanı düzeyinde erişim kontrollerini uygular.

S4. PostgREST API üretim ortamları için uygun mudur?

Cevap: Kesinlikle, JWT kimlik doğrulaması, şema izolasyonu ve birden fazla örnek aracılığıyla yatay ölçeklendirme gibi özelliklerle. Performansı izleyin ve uyumluluk için RLS uygulayın.

S5. PostgREST API'yi ön uç çerçeveleriyle nasıl entegre ederim?

Cevap: Axios veya Fetch gibi HTTP istemcilerini kullanın; React, Vue veya Angular uygulamalarında tip güvenliği için OpenAPI belirtimlerinden TypeScript tipleri oluşturun.

Sonuç

Keşfettiğimiz konuları değerlendirdiğimizde, PostgREST API, veritabanı odaklı geliştirme için zarif bir çözüm olarak öne çıkıyor ve PostgreSQL'in güçlü yönlerini erişilebilir web hizmetlerine dönüştürüyor. Zahmetsiz kurulumdan gelişmiş sorgulamaya kadar, daha az ek yükle sağlam API'ler sunmanızı sağlar. Örnek projeyi çoğaltmanızı ve daha fazla deneme yapmanızı (belki de kimlik doğrulama ile genişletmenizi) teşvik ediyorum. Uygulamalarınız geliştikçe, PostgREST API çevikliği ve güvenilirliği sürdürmede vazgeçilmez bir müttefik olacaktır.

💡
Harika API Dokümantasyonu oluşturan mükemmel bir API Test aracı mı istiyorsunuz?

Geliştirici Ekibinizin maksimum üretkenlikle birlikte çalışması için entegre, Hepsi Bir Arada bir platform mu istiyorsunuz?

Apidog tüm taleplerinizi karşılar ve Postman'ı çok daha uygun bir fiyata değiştirir!
Düğme

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

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