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.

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.

1- Ana menüde Geliştirme → API Proxyler (Development → API Proxies) ögesi seçilir.

2- Açılan arayüzde sağ üstteki +Create butonuna tıklanır.



3- Yeni oluşturulacak API Proxy için aşağıdaki seçenekler görülür.



TipAçı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.


Ayrıca seçeneklerin altlarında bazı ek seçenekler olduğu da görülmektedir. 

AlanAçı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.


AlanAçı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.
URLTanım dosyasına erişilecek adrestir.


Spec Authorization Kullan seçeneği işaretlenirse aşağıdaki tablo gelir ve yetkilendirme için gerekli olan anahtarlar eklenir.


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/findByStatus

Dikkat 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

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.

syntax = "proto3 

package hello;

service HelloService { 

}

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)