Ana içeriğe atla

JSON Formatı

REST API Proxy, JSON formatında mesaj işleme yapar. Request ve response mesajları JSON formatındadır.

HTTP Metodları

GET, POST, PUT, DELETE, PATCH gibi standart HTTP metodlarını destekler.

OpenAPI Desteği

OpenAPI 2.0 (Swagger) ve OpenAPI 3.0 spesifikasyonlarını destekler.

Esnek Yapılandırma

Routing, politikalar ve ayarlar esnek bir şekilde yapılandırılabilir.

REST API Proxy Oluşturma Yöntemleri

REST API Proxy oluşturmak için birkaç yöntem mevcuttur:
En yaygın yöntem, OpenAPI (Swagger) spesifikasyon dosyasından import etmektir. Bu yöntem, API’nizin tüm endpoint’lerini, parametrelerini ve şemalarını otomatik olarak içe aktarır.
OpenAPI dosyası olmadan da manuel olarak REST API Proxy oluşturabilirsiniz. Bu durumda endpoint’leri ve şemaları manuel olarak tanımlamanız gerekir.
Mevcut bir REST API Proxy’yi kopyalayarak yeni bir proxy oluşturabilirsiniz. Bu yöntem, benzer API’ler için zaman kazandırır.
SOAP protokolü ile geliştirilmiş bir Web Servisin REST olarak açılması talebi özellikle, var olan servislerin yeni geliştirilen mobil uygulamalar ya da JavaScript tabanlı Web uygulamaları tarafından kullanılması gibi durumlarda sıklıkla ortaya çıkmaktadır. Apinizer, SOAP Web servislerin REST olarak açılmasını ve bunun için gerekli bütün dönüşümlerin konfigürasyonla yapılabilmesini sağlar.

OpenAPI/Swagger Dosyasından Import

1

API Proxy Oluşturma Sayfasına Gidin

Sol taraftaki ana menüde Geliştirme → API Proxy’ler (Development → API Proxies) ögesi seçilir. Açılan arayüzde sağ üstteki +Add API Proxy butonuna tıklanır ve REST API seçeneği seçilir.
2

OpenAPI Dosyasını Yükleyin

OpenAPI dosyasını yüklemek için üç yöntem mevcuttur:
URL Gir bağlantısına tıklanır. OpenAPI/Swagger dosyasının URL’si girilir (örneğin: https://petstore.swagger.io/v2/swagger.json) ve Parse butonuna tıklanır. Dosya parse edilir ve API bilgileri görüntülenir.
URL Erişimi URL’den yükleme yaparken, Apinizer’in bu URL’ye erişebilmesi gerekir. Eğer URL internal bir adres ise, Apinizer’in bu adrese erişim izni olduğundan emin olun.
Kimlik Doğrulama ve SSL Spec URL’si kimlik doğrulama gerektiriyorsa, Spec Authorization Kullan seçeneğini etkinleştirerek özel header’lar veya Basic Auth (kullanıcı adı/şifre) bilgilerini girebilirsiniz. SSL / Sertifika Ayarları panelinde Bağlantı Zaman Aşımı, SSL/TLS Ayarlarını Özelleştir, SSL Doğrulamayı Atla ve Sunucu Sertifikası Doğrulaması (Sistem Varsayılanı, TrustStore veya PEM) ile HTTPS erişimini yapılandırabilirsiniz. Detay için API Proxy Oluşturma sayfasına bakınız.
Dosya Yükle (Upload File) butonuna tıklanır. Bilgisayarınızdan OpenAPI/Swagger dosyası seçilir (JSON veya YAML formatında). Dosya otomatik olarak parse edilir ve API bilgileri görüntülenir.
Metin Olarak Yapıştır (Paste as Text) seçeneği seçilir. OpenAPI/Swagger içeriği metin alanına yapıştırılır ve Parse butonuna tıklanır. İçerik parse edilir ve API bilgileri görüntülenir.
3

API Bilgilerini Kontrol Edin

Parse işlemi tamamlandıktan sonra, aşağıdaki bilgiler görüntülenir:

API Adı

API’nin adı (OpenAPI dosyasından alınır)

Versiyon

API versiyonu

Base URL

API’nin base URL’i

Endpoint'ler

Tüm endpoint’ler ve HTTP metodları

Şemalar

Request ve response şemaları
4

Routing Yapılandırması

Client Route, API Proxy’nin dış dünyaya açılan endpoint’idir. İstemciler bu endpoint üzerinden API’ye erişir.Örnek:
Bu durumda API Proxy’ye şu şekilde erişilir:
Upstream Target, backend REST API’nizin adresidir. API Proxy, istekleri bu adrese yönlendirir.

Tek Backend

Tüm istekler tek bir backend adresine yönlendirilir.Örnek:

Dinamik Backend

OpenAPI dosyasındaki servers veya host bilgisinden otomatik olarak alınır.Örnek:
5

API Proxy'yi Kaydedin

Tüm bilgiler kontrol edilir. Relative Path alanı doldurulur (zorunlu). Upstream Target bilgisi kontrol edilir veya düzenlenir. Sağ üstteki Kaydet butonuna tıklanır.
API Proxy başarıyla oluşturuldu!

Desteklenen OpenAPI Versiyonları

Apinizer, aşağıdaki OpenAPI versiyonlarını destekler:
  • OpenAPI 2.0 (Swagger 2.0): Tam destek
  • OpenAPI 3.0: Tam destek
  • OpenAPI 3.1: Tam destek

OpenAPI 2.0 Özellikleri

  • swagger alanı: "2.0" değeri
  • host, basePath, schemes alanları
  • paths ve definitions yapısı
  • parameters ve responses tanımları

OpenAPI 3.0/3.1 Özellikleri

  • openapi alanı: "3.0.0" veya "3.1.0" değeri
  • servers array’i
  • paths ve components yapısı
  • requestBody ve responses tanımları
  • securitySchemes ve security tanımları

Import Sonrası Yapılandırma

API Proxy oluşturulduktan sonra, aşağıdaki yapılandırmalar yapılabilir:

HTTP Routing Yapılandırması

HTTP Routing, endpoint’lerin nasıl yönlendirileceğini belirler.

Politikalar Ekleme

API Proxy’ye güvenlik, doğrulama, dönüştürme gibi politikalar eklenebilir.

Test Etme

API Proxy test edilebilir.

Yükleme ve Sürüm

API Proxy ortam(lar)a deploy edilebilir.

Yaygın Senaryolar

Bir public API’yi (örneğin, Petstore API) proxy etmek için:
1

OpenAPI URL'sini Kullanın

Public API’nin OpenAPI dosyasının URL’si kullanılır.
2

Relative Path Belirleyin

Relative Path belirlenir (örneğin: /petstoreProxy).
3

Upstream Target Ayarlayın

Upstream Target olarak public API’nin base URL’i kullanılır.
4

Kaydedin ve Deploy Edin

API Proxy kaydedilir ve deploy edilir.
Internal bir REST API’yi dış dünyaya expose etmek için:
1

OpenAPI Dosyasını Yükleyin

Internal API’nin OpenAPI dosyası yüklenir.
2

Relative Path Belirleyin

Relative Path belirlenir.
3

Upstream Target Ayarlayın

Upstream Target olarak internal API’nin adresi kullanılır.
4

Güvenlik Politikaları Ekleyin

Authentication, Authorization, Rate Limiting gibi güvenlik politikaları eklenir.
5

Kaydedin ve Deploy Edin

API Proxy kaydedilir ve deploy edilir.
Farklı versiyonlar için ayrı API Proxy’ler oluşturmak için:
1

Her Versiyon İçin Ayrı OpenAPI Dosyası

Her versiyon için ayrı OpenAPI dosyası kullanılır.
2

Farklı Relative Path'ler

Farklı Relative Path’ler kullanılır (örneğin: /api/v1, /api/v2).
3

Ayrı Politikalar

Her versiyon için ayrı politikalar tanımlanır.
4

Geçiş Stratejisi

Versiyonlar arasında geçiş stratejisi belirlenir.

En İyi Uygulamalar

OpenAPI Dosyası Kalitesi

OpenAPI dosyanızın geçerli ve güncel olduğundan emin olun. Geçersiz dosyalar import sırasında hata verebilir.

Relative Path Stratejisi

Relative Path’ler için tutarlı bir isimlendirme kuralı kullanın. Örneğin: /{servis-adı}/{versiyon}

Backend Adresi

Backend adreslerini environment variable olarak tanımlayın. Bu, farklı ortamlar için esneklik sağlar.

Güvenlik Politikaları

API Proxy oluşturduktan sonra mutlaka güvenlik politikaları ekleyin. Varsayılan olarak API’ler güvenli değildir.

Sorun Giderme

Sorun: OpenAPI dosyası import edilemiyor.Çözüm:
  • OpenAPI dosyasının geçerli JSON veya YAML formatında olduğundan emin olun.
  • OpenAPI versiyonunun desteklendiğinden emin olun.
  • URL erişilebilirliğini kontrol edin.
  • Dosya boyutunun limit içinde olduğundan emin olun.
Sorun: Import sonrası endpoint’ler görünmüyor.Çözüm:
  • OpenAPI dosyasında paths alanının doğru tanımlandığından emin olun.
  • Endpoint’lerin paths altında doğru şekilde tanımlandığını kontrol edin.
Sorun: İstekler backend’e yönlendirilmiyor.Çözüm:
  • Upstream Target adresinin doğru olduğundan emin olun.
  • Backend API’nin erişilebilir olduğunu kontrol edin.
  • HTTP Routing yapılandırmasını kontrol edin.

SOAP Web Servisinden REST API Proxy Oluşturma

SOAP protokolü ile geliştirilmiş bir Web Servisin REST olarak açılması talebi özellikle, var olan servislerin yeni geliştirilen mobil uygulamalar ya da JavaScript tabanlı Web uygulamaları tarafından kullanılması gibi durumlarda sıklıkla ortaya çıkmaktadır. Var olan servisin REST ile yeniden yazılması ya da metotlarını taklit eden yeni bir REST API geliştirilmesi seçenekleri zaman ve maliyet açısından etkin çözümler değildir. Apinizer, SOAP Web servislerin REST olarak açılmasını ve bunun için gerekli bütün dönüşümlerin konfigürasyonla yapılabilmesini sağlar.

SOAP Web Servisten REST Tipinde API Proxy Oluşturma

1

WSDL Dosyasını Yükleyin

Yeni API Proxy oluşturulurken WSDL tipi için URL Girme (Enter URL) ya da Dosya Yükle (Upload File) seçeneklerinden uygun olan seçilir. Bu örnekte URL Girme seçeneği kullanılmıştır.Image 2024 9 9 15 35 35 Pn
2

Protokol Dönüşümünü Seçin

URL girilip Parse tuşuna basıldıktan sonra gelen ekranda Protokol Dönüşümü (Protocol Transformation) bölümünde REST to SOAP to REST seçeneği işaretlenir. Diğer zorunlu bilgiler de doldurularak API Proxy oluşturulur.Image 2024 9 9 15 35 35 Pn

Metot Dönüşüm Ayarları

API Proxy oluşturulduktan sonra, istenirse metotların istek ve yanıt mesajları için REST - SOAP mesaj yapıları arasında nasıl dönüşüm yapılacağı özelleştirilebilir. Bunun için API Proxy’nin Geliştirme (Development) sekmesine gidilir. Sol taraftaki metot listesinde Hepsi (All) seçiliyken, orta bölümde üstte istek ve altta yanıt mesajlarının dönüşüm ayarlarını açan simgeler görünür. Image 2024 9 9 15 35 35 Pn Örneğin istek mesajlarına ait olan simgeye tıklandığında aşağıdaki protokol dönüşüm arayüzü açılır. Bu arayüzde İstek Mesajı Seçenekleri (Request Options) ve Yanıt Mesajı Seçenekleri (Response Options) sekmeleri bulunmaktadır. Kullanıcının hangi simgeye tıkladığına bağlı olarak ilgili sekme açılır. Image 2024 9 9 15 35 35 Pn Bu arayüzde REST protokolüne uygun olarak gelen istek mesajının Backend API’ye gönderilmeden önce SOAP yapısına uygun hale nasıl getirileceğine ilişkin biçimlendirmeler yapılır. Sol taraftan mesaj yapısı güncellenecek olan metot seçilir. Sağ tarafta ise o metoda ilişkin dönüşüm ayarları yapılır. Image 2024 9 9 15 35 35 Pn

Dönüşüm Seçenekleri

Bir SOAP Servis istemcilere REST olarak açıldığı zaman istek ve yanıt mesajlarının dönüştürülmesi gerekir. İstemciden gelen JSON mesaj SOAP servise gönderilmeden önce XML mesajına, SOAP servisin döndürdüğü XML mesaj ise istemciye gönderilmeden önce JSON mesajına dönüştürülmelidir. Bu dönüşümün yapılabilmesi için çeşitli seçenekler bulunmaktadır:

Jackson Transformation

İstek ve yanıt mesajlarında kullanılacak olan JSON mesajının sade ve kolay anlaşılabilir olması gereken durumlarda tercih edilir. Diğerlerine göre oldukça özelleştirilebilir. En çok tercih edilen yöntemdir.

JsonML Transformation

İstek ve yanıt mesajlarında kullanılacak olan JSON mesajının XML Attribute değerlerini ve XML Namespace’lerini de içermesi isteniyorsa tercih edilir. Diğerlerine göre JSON formatı daha karışıktır. Gösterimindeki Namespace’lerden dolayı XML gösterime benzediğinden veri büyüklüğü artar.

Template Message

Gelen JSON mesajının hangi formatta olduğundan bağımsız, SOAP Servise gönderilecek olan XML şablonunu oluşturmak mantığı üzerine çalışır. XML şablonundaki parametrelerin doldurulması için “istek/yanıt verisi düzenlemesi (request/response data manipulation)” kullanılır. Çoklu alt eleman desteği olmadığından, basit yapıdaki XML’lerin olduğu durumda kullanışlıdır. Özellikle JSON mesajı yerine istek başlığı (request header) veya parametresinden (request parameter) veri alınıp çalışılmak isteniyorsa tercih edilir.

İstek Mesajları Dönüşüm Seçenekleri

Bu bölümde istek mesajlarının dönüşüm seçeneklerinin detayları anlatılmaktadır.

Jackson Dönüşümü Kullan (Use Jackson Transformation)

Image 2024 9 9 15 35 35 Pn Dönüştürülmüş Mesaj Örneği:

JsonML Dönüşümü Kullan (Use JsonML Transformation)

Image 2024 9 9 15 35 35 Pn Dönüştürülmüş Mesaj Örneği:

Şablon Mesajını Kullan (Use Template Message)

Image 2024 9 9 15 35 35 Pn

Yanıt Mesajları Dönüşüm Seçenekleri

Bu bölümde yanıt mesajlarının dönüşüm seçeneklerinin detayları anlatılmaktadır.

Jackson Dönüşümü Kullan (Use Jackson Transformation)

Image 2024 9 9 15 35 35 Pn Dönüştürülmüş Mesaj Örneği:

JsonML Dönüşümü kullan (Use JsonML Transformation)

Dönüştürülmüş Mesaj Örneği:

Şablon Mesajını Kullan (Use Template Message)

Sonraki Adımlar

HTTP Routing

HTTP Routing yapılandırmasını öğrenin

Politika Yönetimi

Politikalar eklemeyi öğrenin

Test Console

API Proxy’yi test etmeyi öğrenin

Yükleme ve Sürüm

Deployment yapmayı öğrenin