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

REST protokolü için yaygın olarak kullanılan API Tanım Dosyası standardıdır. Detaylı bilgi için buraya tıklayınız.

WSDL (SOAP)

SOAP protokolünün Web Servis Tanım Dosyası standardıdır. Detaylı bilgi için buraya tıklayınız.

OpenAPI/Swagger 3.0.x

REST protokolü için Swagger'dan daha sonra oluşturulmuş bir API Tanım Dosyası standardıdır. Detaylı bilgi için buraya tıklayınız.

Reverse Proxy

Gelen istekleri, bir Backend API'ye öyle bir metot/endpoint olup olmadığına bakmadan gönderip, Backend API'den dönen yanıtları istemciye döndürmek için kullanılır. Bir tanım dosyasına ihtiyaç duyulmadığı gibi, Backend API'nin metot/endpoint'lerini tek tek tanımlaya da gerek kalmaz. Backend API'nin kök adresini (root context) vermek yeterli olur.

Empty API

Code-first geliştirilmiş ve herhangi bir tanım dosyası bulunmayan bir REST API'nin ve metot/endpoint'lerinin manuel olarak tanımlanmasını ve bunun için bir API Proxy oluşturulmasını sağlar. Yapılan tanımlara göre  Swagger ya da OpenAPI formatlarında API tanım dosyalarını otomatik olarak üretir.

Mirror API

Gönderilen isteği yanıt olarak döndüren API'dir. Bazen sırf yazılan kodun nasıl çalıştığını deneyebilmek için bir yanıt döndürecek, çalışır durumda bir API gerekir. Bu senaryoda önemli olan bir istek gönderip yanıt alabilmektir. Yanıtın içeriğinin belirlenebilmesi de iyi olabilir. Bunun için bir API geliştirip bir sunucuya yüklemek ise hem zaman, hem emek gerektirir. Mirror API işte böyle bir durumda, hiç geliştirme yapmadan, anında hizmete açılabilen ve bir sunucu ya da kurulum gerektirmeyen, üstelik kendisine gönderilen isteği değiştirilerek dönen yanıtın da belirlenebileceği bir API sağlar.

KPS

KPS, Nüfus ve Vatandaşlık İşleri Genel Müdürlüğü tarafından tutulan kişiye ait nüfus ve yerleşim yeri bilgilerine kamu kurumları ve diğer tüzel kişilerin güncel ve güvenli bir şekilde, 7 gün 24 saat esasıyla çevrimiçi olarak erişmesine imkân sağlayan bir sistemdir. Bu sistemin servislerine yalnızca yetkilendirilmiş istemciler erişebilmektedir. Servislerin WSDL tabanlı ve istemci konfigürasyonunun karmaşık olması ve bir kurumdaki ilgili her istemci uygulamaya kullanıcı adı/parola bilgilerinin dağıtılmak zorunda kalması, kurumlar açısından zorluklara neden olmaktadır. KPS tipinde API Proxy oluşturma yeteneği, bu kullanıcı adı/parola çiftinin tek noktadan yönetilmesi ve KPS servislerine istemci olma detaylarının otomatik olarak ele alınmasını sağlayarak ciddi kolaylıklar sağlar.

KPS seçeneğini aktifleştirme bilgileri için buraya tıklayınız.

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. 

Adresler

(Addresses)

Backend API'nin erişim adresleridir. 

Geçit Adresi

(Relative Path)

Geçit Adresi bu API Proxy'nin erişime açılan adresinin (URL) bir parçasıdır. 

Gelen isteklerin uygun API Proxy'e yönlendirilmesi için API Gateway'in adresi kullanılır. Bunun için aşağıdaki örnekte olduğu gibi, yüklenen (deployed) her API Proxy için Geçit Adresi de kullanılarak biricik bir adres oluşturulur:

  • Apinizer'in çalıştığı sunucunun erişim adresi: https://demo.apinizer.com olsun.
  • Geçit Adresi: /petstoreProxy olsun.
  • API Proxy'nin yüklendiği Ortamın erişim adresi: /apigateway olsun. 
  • Erişilmek istenen endpoint URL: /findByStatus olsun.
  • Bu durumda bu API Proxy'nin bu Ortam üzerinde, bu endpoint için erişim adresi:
  • https://demo.apinizer.com/apigateway/petstoreProxy/findByStatus olacaktır.


Bu değer oluşturulurken bazı kriterlere dikkat edilmelidir;

  • Uygulama bazında Tekil olmalıdır.
  • Başka bir relative path, başka bir relative path değeri ile başlayamaz.
  • Eğer Proje ayarları yapılırken, Proje için Enable Relative Path değeri aktif edilirse, bu projede oluşturulacak tüm API Proxy'lerin Geçit Adresi değerlerinin önüne Proje için tanımlanan Geçit Adresi salt okunur olarak eklenecektir.

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)


Adresler (Addresses) kısmında https://petstore.swagger.io/v2 kutusu işaretlenip Geçit Adresi (Relative Path) alanına örneğin /petstoreProxy yazılarak sağ üstteki kaydet tuşuna tıklanmasıyla API Proxy oluşturma işi tamamlanmış olur.