Veritabanını RESTful API'ye dönüştürmek için eklentiler olan PostgREST 9.0.0 sürümü

PostgreSQL DBMS'ye hafif bir eklentinin uygulanmasıyla ayrı olarak çalışan bir web sunucusu olan ve mevcut bir veritabanındaki nesneleri bir RESTful API'ye çeviren PostgREST 9.0.0'ın piyasaya sürülmesi gerçekleşti. PostgREST, ilişkisel verileri nesnelere (ORM'ler) eşlemek yerine doğrudan veritabanında görünümler oluşturur. Veritabanı tarafı ayrıca JSON yanıtlarının serileştirilmesini, veri doğrulamayı ve yetkilendirmeyi de yönetir. Sistem performansı, tipik bir sunucuda saniyede 2000'e kadar isteği işlemek için yeterlidir. Proje kodu Haskell'de yazılmış ve MIT lisansı altında dağıtılmıştır.

Örneğin, yalnızca veritabanı ayrıcalık mekanizmasını kullanarak verilere (tablolar, görünüm türleri ve saklı prosedürler) HTTP üzerinden erişim izni verebilirsiniz. Bu durumda, böyle bir çeviriyi kodlamaya gerek yoktur ve tablonun REST API aracılığıyla kullanılabilir hale getirilmesi için genellikle bir GRANT komutu yeterlidir. Erişimi belirteçle (JWT) yapılandırmak ve dinamik satır düzeyinde güvenlik (Satır Düzeyinde Güvenlik) kullanarak "çoklu kiracılığı" düzenlemek mümkündür.

Mimari olarak PostgREST, mikro hizmetlerin durumları kaydetmediği, bunun için verilere tek bir erişim (Veri Erişim Katmanı) kullandığı veri odaklı bir mimariye (Veri Odaklı Mimari) doğru ilerlemektedir.

Veritabanını RESTful API'ye dönüştürmek için eklentiler olan PostgREST 9.0.0 sürümü

Yeni sürümdeki değişiklikler arasında:

  • Depolama şeması önbelleğine bölümlenmiş tablolar eklendi; bu, bu tür tabloların UPSERT ve INSERT işlemlerini Konum yanıtına yerleştirmesini, OPTIONS sorgularını yürütmesini ve OpenAPI desteğini uygulamasını mümkün kıldı.
  • RPC POST aracılığıyla, adsız bir parametreyle işlevlerin çağrılmasına izin verilir.
  • "Prefer: params=single-object" başlığı olmadan tek bir JSON parametresi ile işlevlerin çağrılmasına izin verilir.
  • “Content-Type: application/octet-stream” sorgularını kullanarak bytea türündeki verilerin işlevlere yüklenmesine izin verilir.
  • "Content-Type: text/plain" sorgularını kullanarak işlevlere metin yükleme izni verildi.
  • Çift parantez içindeki karakterlerin kaçması için destek eklendi, örneğin, "?col=in.("Double\"Quote"), ?col=in.("Back\\slash")".
  • Yerleşik filtrelere ("/projects?select=*,clients!inner(*)&clients.id=eq.12") dayalı olarak birinci düzey kaynakları filtreleme yeteneği sağlanmıştır.
  • "is" operatörü "bilinmeyen" değerine izin verir.
  • PostgreSQL 14 ile uyumluluk sağlandı ve PostgreSQL 9.5 desteği durduruldu.

Kaynak: opennet.ru

Yorum ekle