API Proxy Oluşturma
Apinizer ile, var olan bir API/Web Servisi Backend API olarak kullanıp API Proxy oluşturmak ya da Backend API olmadan bir API Proxy oluşturup API olarak sunmak çok kolaydır. Bu bölümde Swagger 2.x formatındaki bir API'nin URL bilgisi kullanılarak nasıl API Proxy oluşturulabileceği gösterilecek, bununla ilgili seçenek ve veri alanlarının detayları anlatılacaktır.
Hızlı Başlangıç Aşağıda örnek bir API Proxy oluşturulurken izlenen adımlar Hızlı Başlangıç sayfasında anlatılanlarla aynı olmakla birlikte, bu bölümde veri alanlarına ilişkin açıklamalar bulunmaktadır.
API Proxy Oluşturma Adımları
1- Ana menüde Geliştirme → API Proxy'ler (Development → API Proxies) ögesi seçilir.
2- Açılan arayüzde sağ üstteki +Add API Proxy butonuna tıklanır.
3- Yeni oluşturulacak API Proxy için aşağıdaki seçenekler görülür.
API Proxy Tipleri
Oluşturulacak API Proxy için uygun tip seçilir. Mevcut API Proxy tipleri aşağıdaki tabloda açıklanmıştır.
| Tip | Açıklama |
|---|---|
| Swagger 2.x | Swagger 2.x tanımından REST API Proxy oluşturmak için kullanılır. Detaylı bilgi için buraya tıklayınız. |
| WSDL (SOAP) | WSDL tanımından SOAP API Proxy oluşturmak için kullanılır. Detaylı bilgi için buraya tıklayınız. |
| OpenAPI/Swagger 3.0.x | OpenAPI/Swagger 3.0.x tanımından REST API Proxy oluşturmak için kullanılır. Detaylı bilgi için buraya tıklayınız. |
| Reverse Proxy | HTTP Reverse Proxy oluşturmak için kullanılır. Gelen istekleri, ilgili metot/endpoint olup olmadığına bakmaksızın Backend API'ye iletir ve Backend API'den dönen yanıtları istemciye geri döndürür. Tanım dosyasına gerek yoktur ve Backend API'nin metotlarını/endpointlerini tek tek tanımlamaya gerek yoktur. Backend API'nin kök bağlamını (root context) vermek yeterlidir. |
| No-Spec API | Daha önce code-first yaklaşımıyla geliştirilmiş ve tanım dosyası olmayan bir API için, metotları/endpointleri manuel olarak tanımlama ve API Proxy oluşturma imkanı sağlar. Apinizer, tanımlara göre Swagger veya OpenAPI formatlarında API tanım dosyalarını otomatik olarak oluşturur. |
| gRPC | Gelen gRPC isteklerini Backend gRPC Sunucusuna ileten ve Backend gRPC Sunucusundan dönen yanıtları istemciye geri döndüren gRPC Proxy oluşturmak için kullanılır. Tanım dosyasına gerek yoktur, ancak proto dosyası kullanılabilir. |
| WebSocket | WebSocket Proxy oluşturmak için kullanılır. |
| Connector | Konnektörlerden API proxy'si oluşturma yeteneği sağlar. Bu özellik, HTTP'yi farklı protokollere (Kafka, RabbitMQ, ActiveMQ, Mail... vb gibi) dönüştürme imkanı sağlar. Konnektörler hakkında daha fazla bilgi edinmek için lütfen bu sayfayı ziyaret edin. |
API Tanım Belgesi Kaynağı
Ayrıca seçeneklerin altlarında bazı ek seçenekler olduğu da görülmektedir.
| Alan | Açıklama |
|---|---|
| URL Gir (Enter URL) | Kendisi için API Proxy oluşturulacak API'nin API Tanım belgesinin erişilebilir olduğu URL bilinmektedir. Bu URL belirtilerek API Proxy oluşturulabilir. Örnekler: https://petstore.swagger.io/v2/swagger.json, http://www.dneonline.com/calculator.asmx?WSDL |
| Dosya Yükle (Upload File) | Kendisi için API Proxy oluşturulacak API'nin API Tanım belgesi bir dosya olarak kayıtlı halde kullanıcıda ise bu dosya yüklenerek API Proxy oluşturulabilir. |
| API Tanım Belgesi Seç (Select API Spec) | Kendisi için API Proxy oluşturulacak API için, API Tanım Belgesi Editörü (API Spec Creator) ile önceden oluşturulmuş olan bir API Tanım Belgesi kullanılarak API Proxy oluşturulabilir. |
Oluşturulacak API Proxy için uygun olan tip ve seçenek seçilir. Bu örnek için Swagger 2.x tipinin URL Gir (Enter URL) bağlantısına tıklanır.
4- Gelen arayüzde aşağıdaki veri alanları bulunmaktadır.
| Alan | Açıklama |
|---|---|
| Spec Authorization Kullan_(Use Spec Authorization)_ | Bazı tanım dosyaları, içeriklerinin görüntülenebilmesi için istemcinin yetkilendirilmiş olduğunu kontrol eder. Bunun için HTTP isteği içerisinde kimlik doğrulama verilerinin gönderilmesi gerekir. Eğer erişilecek URL'deki tanım dosyası böyle bir dosya ise, bu kutu işaretlenerek kimlik bilgilerini girilir. |
| URL | Tanım dosyasına erişilecek adrestir. |
Spec Authorization Kullan seçeneği işaretlenirse isteğe bağlı Temel Kimlik Doğrulama alanları ve Spec Authorization Listesi tablosu görünür; listede Key Name, Value ve Type sütunlarıyla yetkilendirme anahtarları eklenir.
Spec Authorization Desteği Spec Authorization özelliği tüm URL tabanlı API Proxy türlerinde (Swagger, OpenAPI, WSDL, gRPC) kullanılabilir. Yetkilendirme bilgileri, alt şema dosyalarının (XSD import gibi) indirilmesinde de otomatik olarak kullanılır.
Temel Kimlik Doğrulama (Basic Authentication)
Spec Authorization etkinleştirildiğinde, isteğe bağlı olarak HTTP Basic Authentication kullanılabilir. Kullanıcı adı ve şifre girildiğinde, Apinizer otomatik olarak bir Authorization: Basic ... başlık bilgisi oluşturur. Bu, özellikle Basic Auth ile korunan spec URL'leri için pratik bir kısayoldur.
Hem Basic Auth hem de özel header tanımları aynı anda kullanılabilir. Bu durumda her ikisi de birleştirilerek gönderilir.
SSL / Sertifika Ayarları
Spec URL'si ile tanım dosyası alınırken kullanılacak güvenli bağlantı ve sertifika ayarları SSL / Sertifika Ayarları panelinde toplanır (panel açılıp kapatılabilir).
| Alan | Açıklama |
|---|---|
| Bağlantı Zaman Aşımı (Connection Timeout) | Spec URL yanıtı için azami bekleme süresi (saniye). Alan yanında birim olarak seconds gösterilir. Yardım metni: spec URL yanıtı için beklenecek azami süre (varsayılan: 30 sn, aralık: 5–120 sn). |
| SSL/TLS Ayarlarını Özelleştir (Customize SSL/TLS Settings) | Kapalıyken sistem varsayılanları (JVM cacerts) kullanılır; açıkken özel sertifika, TrustStore veya mTLS yapılandırırsınız. Açıldığında Sunucu Sertifikası Doğrulaması bölümü ve alt seçenekler görünür. |
| SSL Doğrulamayı Atla (Skip SSL Verification) | Açıkken sunucu sertifikası doğrulanmaz; self-signed veya özel CA ortamları için uygundur. |
| Sunucu Sertifikası Doğrulaması (Server Certificate Verification) | SSL/TLS Ayarlarını Özelleştir açıkken görünür (daraltılabilir alt bölüm). Radyo seçenekleri: Sistem Varsayılanı (JVM) (varsayılan), TrustStore (JKS/PKCS12), Sertifika (PEM). Seçime göre TrustStore veya PEM için yükleme ve havuz seçimi alanları açılır. |
TrustStore (JKS/PKCS12) veya Sertifika (PEM) seçildiğinde ilgili satırlarda Mevcut Seç, TrustStore Yükle (.jks, .p12, .pfx) ve şifre veya PEM yükle (.pem, .crt, .cer) seçenekleri dialog üzerinden kullanılır.
Yüklenen TrustStore veya PEM dosyasını daha sonra diğer ekranlarda yeniden kullanmak isterseniz KeyStore Havuzuna Ekle veya Sertifika Havuzuna Ekle seçeneğini işaretleyip bir isim verebilirsiniz.
API Proxy oluşturulduktan sonra yeniden ayrıştırma (reparse) yapıldığında, ilk oluşturma sırasında kullanılan SSL/TLS ayarları otomatik olarak korunur ve aynı ayarlarla spec URL'sine erişilir.
Bu örnek için Spec Authorization Kullan seçeneğine ihtiyaç yoktur. URL alanına https://petstore.swagger.io/v2/swagger.json adresi yazılıp sağ taraftaki Parse tuşuna tıklanır.
5- URL alanında verilen adresteki Swagger dosyası ayrıştırılarak API'nin bilgileri görüntülenir.
Gelen arayüzdeki alanlar aşağıdaki tabloda açıklanmıştır.
| Alan | Açıklama |
|---|---|
| Adı (Name) | API Proxy'ye kullanıcı tarafından verilen addır. Arayüzlerde bu ad görünür. |
| Açıklama (Description) | API Proxy'nin tanım bilgisidir. |
| Routing Addresses | Backend API'nin erişim adresleri. Status checkbox ile aktif/pasif edilebilir. Birden fazla adres load balancing için eklenebilir. |
| Client Route | İstemcilerin API Proxy'e erişim için kullanacağı yönlendirme yöntemi (Path, Method veya Header bazlı). Relative Paths: API Proxy'nin erişime açılan adresinin bir parçası. Gelen isteklerin uygun API Proxy'e yönlendirilmesi için kullanılır. Örnek: • Apinizer adresi: https://demo.apinizer.com• Relative Path: /petstoreProxy • Ortam adresi: /apigateway • Endpoint: /findByStatus • Tam erişim adresi: https://demo.apinizer.com/apigateway/petstoreProxy/findByStatusDikkat edilmesi gerekenler: • Uygulama bazında tekil olmalıdır • Başka bir path'in başlangıcı olamaz • Proje ayarlarında Enable Relative Path aktifse, proje path'i otomatik önüne eklenir gRPC için: Eğer API Proxy tipi gRPC ise bu değer proto dökümanındaki "/packagename.servicename" şeklinde olmalıdır. Örneğin aşağıdaki gibi bir proto dosyasına sahip ise relative path değeri "/hello.HelloService" şeklinde olmalıdır: proto<br/>syntax = "proto3"<br/>package hello;<br/>service HelloService {<br/>}<br/>WebSocket için: Eğer API Proxy tipi WebSocket ise relative path değerinin nasıl girilmesi gerektiği ile ilgili şu sayfayı ziyaret edebilirsiniz. Methods: API Proxy'nin desteklediği HTTP metodları (GET, POST, PUT, DELETE, PATCH vb.) Hosts: Backend servislerin host adresleri. "Add a host" ile yeni adres eklenebilir. Headers: API Proxy seviyesinde eklenecek HTTP header'ları. "Add a header" ile yeni header eklenebilir. Detaylı bilgi için bakınız: API Proxy Client Route Kullanım Kılavuzu |
| Backend API Versiyon_(Backend API Version)_ | API Proxy'e tanımlanan Backend API Versiyonudur. |
| Kategori Listesi_(Category List)_ | API Proxy'lerin yönetiminde kolaylık sağlamak üzere kategoriler oluşturulabilir. Kategori listesi, API Proxy'nin hangi kategorilere ait olduğunu belirlemek için kullanılır. |
| Kullanım Şekli_(Usage)_ | Backend API'nin kaynağının kim olduğunu belirtir. Alabileceği değerler: Üretici (Publisher): Backend API, firma/kurumun kendisi tarafından açılmıştır. Tüketici (Consumer): Backend API, başka bir firma/kuruma aittir. O API'ye erişmek için API Proxy oluşturulmaktadır. Üretici ve Tüketici (Publisher & Consumer): Başka bir firma/kuruma ait olan bir Backend API için oluşturulan API Proxy, 3. taraflara da kullandırılmak üzere oluşturulmaktadır. |
| Paylaşım Tipi_(Sharing Type)_ | Backend API'nin nasıl paylaşılacağı belirtilir. Alabileceği değerler: Dış (External), İç (Internal), Dış ve İç (External and Internal) |
| Gövde Okuma Davranışı (Body Read Behavior) | Gateway'in istek ve yanıt gövdelerini ne zaman okuyacağını kontrol eder. Her Zaman Oku: Gövdeyi her istekte okur (varsayılan). Politika Varsa Oku: Gövdeye erişim gerektiren bir politika varsa okur. Asla Okuma: Gövdeyi hiçbir zaman okumaz, doğrudan iletim yapılan proxy'ler için kullanışlıdır. İstek ve yanıt gövdeleri için bağımsız olarak ayarlanabilir. |
İlgili Sayfalar
Hızlı başlangıç kılavuzu
API Tanım Belgesi oluşturma
API Proxy ayarları
SOAP API Proxy oluşturma
REST API Proxy oluşturma
gRPC API Proxy oluşturma
WebSocket API Proxy oluşturma
Connector API Proxy oluşturma
Veritabanından API oluşturma
Script ile API oluşturma
Mock API oluşturma