En son kararlı sürüm için lütfen Mirket Geliştirici Dokümanı v4.9.x!

Katalog

Organizasyonlar

Organizasyon Listeleme Ekranı

API kullanıcılarını gruplandırmak için kullanılan organizasyonların listelendiği ekrana menüden ”Organizasyonlar” kısmından ulaşılabilir. Arama kriterlerine göre istenilen değer girildiğinde aşağıdaki organizasyon listesi listelenir. Kullanıcı, ”Temizle” butonuna tıklayarak arama kriterlerini temizleyebilir. “Kapat” butonuna tıklayarak kullanıcı Ana Menüye dönüş yapabilir. Her organizasyonun solunda bulunan "Güncelle" butonuna tıklayarak da mevcut organizasyon üzerinde değişiklikler yapılabilir.

Organizasyon Listeleme Ekranı

Organizasyon Oluşturma Ekranı

Kullanıcı, Organizasyon Listeleme ekranında yer alan “Organizasyon Oluştur” butonuna tıklayarak aşağıdaki ekran alıntısında görüldüğü gibi yeni organizasyon oluşturabilir. “İptal” butonuna tıklayarak kullanıcı Organizasyon Listeleme ekranına dönüş yapabilir.

Organizasyon Oluşturma Ekranı
Figure 1. Organizasyon Oluşturma Ekranı

Çoklu Ortam Senkronizasyonu

Oluşturma

Organizasyon Senkronizasyonu
Figure 2. Organizasyon Senkronizasyonu

İlgili veriler doldurulduktan sonra Kaydet butonuna basılır. Eğer ki çoklu ortam aktifse oluşturma işlemi başarılı olduktan sonra ekranda oluşturulan organizasyonun diğer ortamlarla senkronize edilmek istendiği sorulur.

Güncelleme

Organizasyon Senkronizasyonu
Figure 3. Organizasyon Senkronizasyonu

İlgili organizasyon istenen verilerle güncellendikten sonra Güncelle butonuna basılır. Güncelleme işlemi başarılı olduktan sonra ekranda güncellenen organizasyonun diğer ortamlarla senkronize edilmek istendiği sorulur.

API

API Listeleme Ekranı

Menüden apileri görüntülemek için ”API” alanına tıklayarak ula̧şılabilir. Arama kriterlerine göre istenilen değer girildiğinde aşağıdaki api’ler listelenir. Kullanıcı ”Temizle” butonuna tıklayarak arama kriterlerini temizleyebilir. “Kapat” butonuna tıklayarak kullanıcı Ana Menüye dönüş yapabilir. Her apinin solunda bulunan "Güncelle" butonuna tıklayarak mevcut API üzerinde değişiklikler yapılabilir. Her apinin solunda bulunan "Görüntüle" butonuna tıklayarak da mevcut API 'nin değerleri görülebilir. Ayrıca yine her apinin solunda bulunan "Kopyala" butonuna tıklayarak da mevcut API 'nin değerleri kopyalanarak yeniden bir API oluşturulabilir.

API Listeleme Ekranı
Figure 4. API Listeleme Ekranı

API Oluşturma Ekranı

Kullanıcı API Listeleme ekranında yer alan “Yeni API Oluştur” butonuna tıklayarak aşağıda görünen "Tanım" sekmesi ile ekran üzerinden yeni api oluşturabilir.

Tanım

  • Ad: API’nin adı girilir.

  • Açıklama: API ilgili bir açıklama girilir.

  • Durum: API’nin durum bilgisi girilir.

  • Tip: API’nin tipi seçilir. REST veya SOAP seçeneklerinden birisi seçilir.

  • Domain: Domain adresi.

  • Endpoint: Gateway modülünde bu API için açılacak olan URL yazılır. Örneğin: "/ws/rest/v10/subscription/list" Gateway modülünde buraya girilen URL üzerinden gelen istekleri bu API ile ilişkilendirir. Bu bilgiler API endpointlerine bakılarak girilmelidir.

  • Metod: API nin çağrılma metodu girilir. GET, POST, DELETE, PUT, PATCH gibi seçenekler bulunur.

  • Asenkron mu?: API nin asenkron çalışması istenildiğinde bu checkbox işaretlenir. Ardından açılan Cevap Gövdesi bölümüne JSON veya XML olarak dönüş değeri girilir. Eğer checkbox işaretlenmezse API senkron olarak çalışacaktır.

Asenkron api özelliği ile ilgili daha fazla bilgi edinmek için, ilgili bağlantıya tıklayarak demo videosunu izleyebilirsiniz.

API Oluşturma Ekranı
Figure 5. API Oluşturma Ekranı

İstek Kuralları

API’nin istek ile ilgili kuralları bu sekme üzerinden belirlenir.

Header Koşulları

API’ye gelen istek başlıklarına bir kural tanımlayıp bu kurala göre girilen aksiyon değeri ile bir aksiyon alınması sağlanabilir.

Örneğin, API’mize X-API-USERNAME anahtar değerine sahip bir istek başlığı bekliyor olalım. Bu istek başlığı değerine sahip olmayan isteklerde ise bir tanımlı bir hata kodu olan GW-ERR-001 fırlatabiliriz. Bunun için Header Koşulları sekmesinde bulunan tabloya aşağıdaki değerlerle doldurursak, API’ye X-API-USERNAME istek başlığı olmadan gelen tüm isteklerde GW-ERR-001 hatasını fırlatmış oluruz.

Anahtar: X-API-USERNAME

Kural: İstek Başlığı Değer Kontrolü

Aksiyon: Tanımlı İstisna Fırlatmak

Aksiyon Değeri: GW-ERR-001

İstek başlığı kurallarında hata kodlarını kullanmak ile daha fazla bilgi için Hata Kodları bölümünü inceleyiniz.

API İstek Başlıkları Koşulları
Figure 6. API İstek Başlıkları Koşulları

İstek Kontrolleri

API’ye gelen isteklerde (SOAP / REST) başlıca kontrollerin yapılıp/yapılmaması bu sekme üzerinden belirlenir.

Burada belirnebilecek başlıca istek kuralları şunlardır:

  • İstek validasyonu yapılsın mı?: Gelen isteğin SOAP ise xml kontrolü, REST ise json kontrolü yapılmak istenir ise işaretlenir.

  • İstek boyutu kontrolü yapılsın mı? Gelen isteğin içerik boyut kontrolü yapılmak istenir ise işaretlenir.

    • Maksimum içerik boyutu (byte): İstek boyutu kontrolü yapılsın mı? checkbox’ı işaretli ise görülen bu input alanı ise boyut kontrolü yapılacak istek için maksimum izin verilen içerik boyutunun byte cinsinden tanımlanacağı input alanıdır.

Yönlendirme

API 'nin ilgili backend’e nasıl, hangi strateji ile yönlendirileceği bu sekme üzerinden belirlenir. Basit Yönlendirme, Yük Dağıtımı ile Yönlendirme, Groovy Kodu çalıştırması ve JavaScript Kodu Çalıştırması gibi seçenekler bulunur.

Yönlendirme
Figure 7. Yönlendirme

Basit Yönlendirme

  • Backend Http Metod Alanı: Backend Http metodu seçilir. GET, POST, DELETE, PUT, PATCH gibi seçenekler bulunur.

  • BackendUri Alanı: İsteğinin gideceği backend sistemin URL’i bu alana girilir.

Yük Dağıtımı ile Yönlendirme

Bu sekmeye geçildiğinde API üzerinde yük dağıtım stratejisi seçilebilir hale gelecektir. Yük Dağıtım Stratejisi için Round Robin, Weighted, A/B Test ve Idempotent yöntemlerinden birisi seçilerek ilgili değerler girilebilir. Her strateji için bir adet Backend Url Ekleme butonu bulunur. Bu buton ile URL eklenebilir. Bu sekmede ayrıca yük dağıtım yöntemi farketmeksizin backend Http metodu seçilmelidir.

  • Round Robin: Eklenen birden fazla BackendURL’e istekleri sırayla dağıtır.

  • Weighted: BackendURL eklemek için butona tıklandığında her bir url için ayrıca ağırlık değeri girilmesi gerekir. Girilen bu ağırlık değerlerine göre istekler ilgili backendlere random dağıtılır.

  • A/B Test: Bazı serverların istek üzerinde çalıştırılacak idempotent bir fonksiyona göre sadece belirli istekleri alması sağlanır. Bu yapıda BackendUrl’lerin (ya da ribbon dilinde Server) her biri veya birkaçı için idempotent fonksiyonlar tanımlanır. Server seçim sırasında önce fonksiyona sahip serverlar üzerinde bu fonksiyonlar çalıştırılır ve ilk uyan server dönülür. Eğer uyan server yoksa ve fonksiyonu olmayan serverlar varsa, bu serverlar arasında RoundRobin yapılır. Eğer tüm serverlarda idempotent fonksiyon varsa ve hiçbirisi uymuyorsa, Default Backend checkbox’ı seçili olan server dönülecektir.

  • Idempotent: İsteğin içinden okunabilecek bir değere bağlı olarak, aynı değerdeki isteklerin aynı backend’lere gitmesini sağlar. Bir veya birden fazla Backend URL eklendikten sonra Değer Kaynağı seçimi yapılmalı ve kaynağın ilgili değeri girilmelidir.

    • Değer Kaynağı:

      • Sabit Değer: Sabit Değer seçtikten sonra aşağıda açılacak olan input’a sabit bir değer girişi yapılır. Her API isteğinde aynı değer girilir. Örneğin inomera, create-subscription apisini çağırırken X-API-NAME headerına "CreateSub" yazılmasını istediyse bunu sabit değer yoluyla girişi yapılabilir.

      • İstek Başlığı: İş ortaklarının gönderdiği istekte gelen bir header’ı seçerek onun arka tarafa bizim istediğimiz isimle gitmesini sağlayabilir. Örneğin müşterinin yolladığı X-ABC header’ını inomera’ya X-DEF headerında göndermek istenirse bu kullanılır.

      • İstek Çerezi: API isteğinde Cookie (Çerez) olarak gelen bir değeri arkadaki sisteme (Inomera)'ya header olarak aktarmak istediğinde kullanırsın. Örneğin kullanıcının JSESSIONID cookie’sini Inomera’ya X-J-SESS-ID diye header yapıp yollayabilir.

      • Sorgu Dizesi Parametresi: İstek URL’inde soru işaretinden sonra yazılan bir parametreyi okuyup header’a set etmek istenirse kullanılır. API kullanıcısının http://ip:port/gateway/api-url?page=1&max=2&name=inomera yazdığı durumda "name" parametresini alıp bir header’a koyularak arkadaki sisteme header’da inomera değeri gönderilir.

      • İstek Gövdesi JsonPath: Eğer client’dan gelen istek JSON ise ve içerisinden bir parametrenin okunması isteniyorsa "JsonPath" tanımlama dili kullanarak hangi parametreyi alacağımızı belirtebiliriz. Örnek json path tanımı : $.phoneNumbers[:1].type

      • İstek Gövdesi XPath: Eğer client’dan gelen istek XML ise ve içerisinden bir parametreyi okumak istiyorsak "XPath" denilen dili kullanarak hangi parametreyi alacağımızı belirtebiliriz. Bu çok bilinen bir dil. Bu şekilde bir yazımı bulunuyor ve elindeki xml’e göre değişiyor. /bookstore/book/price[text()]

      • İş Nesnesi Alanı: API isteğindeki context içerisindeki nesnelerden birisinin belirli alanlarını arka tarafa header olarak gönderilmek için kullanılır. Örneğin bir API isteği yapıldığında gateway o istekle ilgili şu iş nesnelerinin hangileri olduğunu biliyor: Organizasyon, API Kullanıcısı, Plan, API. İstenildiğinde örneğin organizasyonun ismi backend’e header olarak gönderilebilir.

      • İş Nesnesi Özelliği: API, API Kullanıcısı, Plan veya Organizasyon’daki özelliklerden birisini Header olarak göndermek için kullanılır.

Yük Dağıtımı ile Yönlendirme
Figure 8. Yük Dağıtımı ile Yönlendirme

Groovy Kodu Çalıştırılması

Yönlendirme sekmesinde seçildiği zaman Groovy kodu yazılabilmesi için bir text editör açılır. Bu editör üzerinden Groovy kodu yazılarak yönlendirme işlemi yapılabilir.

JavaScript Kodu Çalıştırılması

Yönlendirme sekmesinde seçildiği zaman JavaScript kodu yazılabilmesi için bir text editör açılır. Bu editör üzerinden JavaScript kodu yazılarak yönlendirme işlemi yapılabilir.

Dönüşüm

Dönüşüm
Figure 9. Dönüşüm

İsteğin, cevabın veya varsa hatanın veri dönüşümü bu sekme üzerinden yapılır.

İstek Veri Dönüşümü

Backend’e gidecek olan isteğin verisi üzerinde istenildiği taktirde dönüşüm yapılabilir veya isteğe başlık eklenebilir. İstek veri dönüşümü Freemarker, Groovy veya JavaScript yazarak yapılabilmektedir.

Freemarker

İstek veri dönüşümü Freemarker kodu ile yapılır.

Groovy

İstek veri dönüşümü Groovy kodu ile yapılır.

JavaScript

İstek veri dönüşümü JavaScript kodu ile yapılır.

Cevap Veri Dönüşümü

Backend’in döndüğü cevabın verisi üzerinde istenildiği taktirde dönüşüm yapılabilir. Cevap veri dönüşümü Freemarker, Groovy veya JavaScript yazarak yapılabilmektedir.

Freemarker

Cevap veri dönüşümü Freemarker kodu ile yapılır.

Groovy

Cevap veri dönüşümü Groovy kodu ile yapılır.

JavaScript

Cevap veri dönüşümü JavaScript kodu ile yapılır.

Hata Veri Dönüşümü

İstek sırasında dönülen hata üzerinde istenildiği taktirde dönüşüm yapılabilir. Hata veri dönüşümü Freemarker, Groovy veya JavaScript yazarak yapılabilmektedir.

Freemarker

Hata veri dönüşümü Freemarker kodu ile yapılır.

Groovy

Hata veri dönüşümü Groovy kodu ile yapılır.

JavaScript

Hata veri dönüşümü JavaScript kodu ile yapılır.

API İsteği Başlıkları

API İsteği Başlıkları Oluşturma Ekranı
Figure 10. API İsteği Başlıkları Oluşturma Ekranı
  • API İsteği Başlıkları: API isteğinin gönderileceği backend sistem request header’a bir parametre eklemesini istiyorsa api isteği başlıkları kısmı kullanılır.

    • Değer Kaynağı:

      • Sabit Değer: Sabit Değer seçtikten sonra aşağıda açılacak olan input’a sabit bir değer girişi yapılır. Her API isteğinde aynı değer girilir. Örneğin inomera, create-subscription apisini çağırırken X-API-NAME headerına "CreateSub" yazılmasını istediyse bunu sabit değer yoluyla girişi yapılabilir.

      • İstek Başlığı: İş ortaklarının gönderdiği istekte gelen bir header’ı seçerek onun arka tarafa bizim istediğimiz isimle gitmesini sağlayabilir. Örneğin müşterinin yolladığı X-ABC header’ını inomera’ya X-DEF headerında göndermek istenirse bu kullanılır.

      • İstek Çerezi: API isteğinde Cookie (Çerez) olarak gelen bir değeri arkadaki sisteme (Inomera)'ya header olarak aktarmak istediğinde kullanırsın. Örneğin kullanıcının JSESSIONID cookie’sini Inomera’ya X-J-SESS-ID diye header yapıp yollayabilir.

      • Sorgu Dizesi Parametresi: İstek URL’inde soru işaretinden sonra yazılan bir parametreyi okuyup header’a set etmek istenirse kullanılır. API kullanıcısının http://ip:port/gateway/api-url?page=1&max=2&name=inomera yazdığı durumda "name" parametresini alıp bir header’a koyularak arkadaki sisteme header’da inomera değeri gönderilir.

      • İstek Gövdesi JsonPath: Eğer client’dan gelen istek JSON ise ve içerisinden bir parametrenin okunması isteniyorsa "JsonPath" tanımlama dili kullanarak hangi parametreyi alacağımızı belirtebiliriz. Örnek json path tanımı : $.phoneNumbers[:1].type

      • İstek Gövdesi XPath: Eğer client’dan gelen istek XML ise ve içerisinden bir parametreyi okumak istiyorsak "XPath" denilen dili kullanarak hangi parametreyi alacağımızı belirtebiliriz. Bu çok bilinen bir dil. Bu şekilde bir yazımı bulunuyor ve elindeki xml’e göre değişiyor. /bookstore/book/price[text()]

      • İş Nesnesi Alanı: API isteğindeki context içerisindeki nesnelerden birisinin belirli alanlarını arka tarafa header olarak gönderilmek için kullanılır. Örneğin bir API isteği yapıldığında gateway o istekle ilgili şu iş nesnelerinin hangileri olduğunu biliyor: Organizasyon, API Kullanıcısı, Plan, API. İstenildiğinde örneğin organizasyonun ismi backend’e header olarak gönderilebilir.

      • İş Nesnesi Özelliği: API, API Kullanıcısı, Plan veya Organizasyon’daki özelliklerden birisini Header olarak göndermek için kullanılır. İş Nesnesi Özelliği "Özellik Tanımları" kısmında daha detaylı belirtilecek.

Hata Kodları

API Altına Hata Kodu Tanımlama bölümündeki adımlar takip edilerek API üzerine hata kodu tanımlaması yapılabilir.

Hata Kodları
Figure 11. Hata Kodları

Önbellek

Önbelleği aktifleştir checkbox’ı işaretlendiğinde önbellek aktif hale gelir ve kullanıcıdan önbelleğin zaman aşımı değerini saniye cinsinden girilmesi beklenir.

Loglama

API bazlı log seviyesi tanımı ve loglama detayı ile ilgili ayarların yapıldığı sekmedir. Detaylı bilgi için API Bazında Log Seviyesi Tanımlama bölümü incelenebilir.

API Bazlı Loglama
Figure 12. API Bazlı Loglama
API Bazlı Loglama Detayı
Figure 13. API Bazlı Loglama Detayı

Kaynak Yönetimi

API Bazlı HTTP Ayarları bölümündeki adımlar takip edilerek API üzerine özel HTTP bağlantı havuzu tanımı yapılabilir.

Test

API 'nin tüm değerleri doldurulup API oluşturduktan sonra API, "Test" sekmesi üzerinden ilgili değerler girildikten sonra tetiklenebilir.

İstek

API’ye yapılacak istek için gereken değerler bu alandan girilir. Alanın en üstünde isteğin yapılacağı URL’in girileceği bir alan ve method tipi vardır. API tanımında seçilen method tipi ve endpoind değeri bu alanda bulunan method ve URL alanını otomatik olarak doldurur.

Parametreler

İstek ile birlikte gönderilecek parametre değerlerinin ismi ve değerleri burada girilir.

Başlıklar

İstek ile birlikte gönderilecek başlık değerlerinin anahtar ve değerleri burada girilir.

Gövde

İsteğin gövdesi burada eklenir.

Cevap

Çalıştır butonuna tıklandıktan sonra dönen cevap burada gösterilir.

Örnek Kod

Seçilen şablona göre API’nin bilgileri işlenir ve şablonun örnek kodu oluşturulup gösterilir.

Çoklu Ortam Senkronizasyonu

Oluşturma

Yeni API Senkronizasyonu
Figure 14. Yeni API Senkronizasyonu

İlgili veriler doldurulduktan sonra Kaydet butonuna basılır. Eğer ki çoklu ortam aktifse oluşturma işlemi başarılı olduktan sonra ekranda oluşturulan API’nin diğer ortamlarla senkronize edilmek istendiği sorulur.

Güncelleme

Güncellenen API Senkronizasyonu
Figure 15. Güncellenen API Senkronizasyonu

İlgili API istenen verilerle güncellendikten sonra Güncelle butonuna basılır. Güncelleme işlemi başarılı olduktan sonra ekranda güncellenen API’nin diğer ortamlarla senkronize edilmek istendiği sorulur.

Katalog → API Kullanıcıları

API Kullanıcıları Listeleme Ekranı

Kullanıcı, API Kullanıcıları listeleme ekranına menüden “API Kullanıcıları” na tıklayarak ulaşabilir. Arama Kriterlerine istenilen değer girildikten sonra “Ara” butonuna bastığında aşağıdaki API Kullanıcıları listesi güncellenir. Kullanıcı “Temizle” butonuna tıklayarak arama kriterlerini temizleyebilir. “Kapat” butonuna tıklayarak kullanıcı Ana Menüye dönüş yapabilir.

Her api kullanıcısının solunda bulunan "Güncelle" butonuna tıklayarak da mevcut api kullanıcıları üzerinde değişiklikler yapılabilir.

API Kullanıcıları Listeleme Ekranı
Figure 16. API Kullanıcıları Listeleme Ekranı

API Kullanıcısı Oluşturma Ekranı

Kullanıcı, API Kullanıcısı Listeleme ekranında yer alan “API Kullanıcısı Oluştur” butonuna tıklayarak aşağıdaki ekran alıntısında görüldüğü gibi yeni api oluşturabilir. Form alanları aşağıdaki kurallara göre doldurulur ve Kaydet butonuna basılarak API Kullanıcısı oluşturulur. İptal butonuna basıldığında, API Kullanıcıları Listeleme ekranına dönüş yapılır.

Tanım

API Kullanıcısı Oluşturma Ekranı
Figure 17. API Kullanıcısı Oluşturma Ekranı
  • Ad: API Kullanıcısının ismi girilir.

  • Durum: API Kullanıcısının durum bilgisi girilir.

  • Organizasyon: API Kullanıcısının bağlı olacağı Organizasyon bilgisi seçilir.

  • IP Kısıtlamaları: Mirket’e gelen istekleri IP bazlı kısıtlamak isteniyorsa bu kısım kullanılır. İş ortağının gelmesi beklenen IP bilgileri bu kısma girilir.

Kimlik Doğrulama Yöntemleri
Figure 18. API Kullanıcısı Kimlik Doğrulama Yöntemleri
  • Kimlik Doğrulama yöntemleri:

    • Temel Kimlik Doğrulama: Temel kimlik doğrulama seçildiğinde gelen username ve password’ün base64 hash’inin alınıp authorization headerına koyulmasıdır. DeFacto bir yöntemdir. Örnek olarak bir username ve password hashlendikten sonra şu şekilde hash ile header gönderilir. Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l

    • İstek Başlığında API Key: İstek Başlığında API Key seçilip ileri butonuna tıklanır. İstek başlığında gönderilecek apiKey değeri ve header adı girilerek kimlik doğrulama yöntemi belirlenir.

    • İstek Başlığında Kullanıcı Adı & Şifre: İstek Başlığında Kullanıcı Adı & Şifre seçilip ileri butonuna tıklanır. İstek başlığında gönderilecek Kullanıcı Adı & Şifre değeri ve Kullanıcı Adı & Şifre header adı girilerek kimlik doğrulama yöntemi belirlenir.

    • Parametrede API Key: Parametrede API Key seçilip ileri butonuna tıklanır. Apikey, Apikey Parametre adı bilgileri girilerek kimlik doğrulama yöntemi belirlenir. Bu bilgiler örnekte gösterildiği gibi girilerek istek gönderilebilir. ör: http://example.inomera.com/ws/rest/v10/subscription/list?apikey=123456642232

    • Parametrede Kullanıcı Adı & Şifre: Parametrede Kullanıcı Adı & Şifre seçilip ileri butonuna tıklanır. Kullanıcı Adı & Şifre ve Kullanıcı Adı & Şifre parametre adı bilgileri girilerek kimlik doğrulama yöntemi belirlenir. Parametreye bu bilgiler örnekte gösterildiği gibi girilerek istek gönderilebilir. ör: http://example.inomera.com/ws/rest/v10/subscription/list?username=asdf&password=qwerrrrt

    • İstek Gövdesinde API Key: İstek gövdesinde API Key seçilip ileri butonuna tıklanır. Sorgu dili(Json Path, XPath) seçilip ileri butonuna tıklanır. Apikey ve Apikey Path bilgileri girilerek kimlik doğrulama yöntemi belirlenir.

    • İstek Gövdesinde Kullanıcı Adı & Şifre: İstek Gövdesinde Kullanıcı Adı & Şifre seçilip ileri butonuna tıklanır. Sorgu dili(Json Path, XPath) seçilip ileri butonuna tıklanır. İstek gövdesinde gönderilecek Kullanıcı Adı & Şifre değeri ve Kullanıcı Adı & Şifre pathi girilerek kimlik doğrulama yöntemi belirlenir.

    • İstek Gövdesinde Temel Kimlik Doğrulama: İstek gövdesinde temel kimlik doğrulama seçildiğinde gelen username ve password’ün base64 hash’inin alınıp istek gövdesinde belirli bir path’e koyulmasıdır. İstek Gövdesinde Temel Kimlik Doğrulama seçilip ileri butonuna tıklanır. Sorgu dili(Json Path, XPath) seçilip ileri butonuna tıklanır. İstek gövdesinde gönderilecek kimlik bilgisinin Kullanıcı Adı & Şifre değeri ve Kullanıcı Adı & Şifre path’i girilerek kimlik doğrulama yöntemi belirlenir.

Hata Kodları

Api Kullanıcısı Altına Hata Kodu Tanımlama bölündeki adımlar takip edilerek API kullanıcısı altına hata kodu tanımı yapılabilir.

API Kullanıcısı Hata Kodları
Figure 19. API Kullanıcısı Hata Kodları

Çoklu Ortam Senkronizasyonu

Oluşturma
Oluşturulan API Kullancısı Senkronizasyon
Figure 20. Oluşturulan API Kullancısı Senkronizasyon

İlgili veriler doldurulduktan sonra Kaydet butonuna basılır. Eğer ki çoklu ortam aktifse oluşturma işlemi başarılı olduktan sonra ekranda oluşturulan organizasyonun diğer ortamlarla senkronize edilmek istendiği sorulur.

Güncelleme
Güncellenen API Kullancısı Senkronizasyon
Figure 21. Güncellenen API Kullancısı Senkronizasyon

İlgili API istenen verilerle güncellendikten sonra Güncelle butonuna basılır. Güncelleme işlemi başarılı olduktan sonra ekranda güncellenen organizasyonun diğer ortamlarla senkronize edilmek istendiği sorulur.

Katalog → Planlar

Planlar Listeleme Ekranı

Kullanıcılar, planları listeleme ekranına menüden “Planlar” a tıklayarak ulaşabilir. Arama Kriterlerine göre “Ara” butonuna tıklandığında aşağıdaki Planlar listesi görüntülenir. Kullanıcı “Temizle” butonuna tıklayarak arama kriterlerini temizleyebilir. “Kapat” butonuna tıklayarak kullanıcı Ana Menüye dönüş yapabilir.

Her planın solunda bulunan "Güncelle" butonuna tıklayarak da mevcut planlar üzerinde değişiklikler yapılabilir.

Planlar Listeleme Ekranı
Figure 22. Planlar Listeleme Ekranı

Plan Oluşturma Ekranı

Kullanıcı, Planlar Listeleme ekranında yer alan “Plan Oluştur” butonuna tıklayarak aşağıdaki ekran görüntüsünde görüldüğü gibi yeni plan oluşturabilir. Form alanları aşağıdaki kurallara göre doldurulur ve Kaydet butonuna basılarak plan oluşturulur. İptal butonuna basarak plan listeleme ekranına dönüş yapılır.

Plan Oluşturma Ekranı
Figure 23. Plan Oluşturma Ekranı
  • Ad: API Kullanıcısının ismi girilir.

  • API Kullanıcısı: Plan yaratılacak API Kullanıcısı bilgisi seçilir.

  • Durum: Planın durum bilgisi girilir.

  • Kullanımı Kısıtlı mı?: Planın tamamına bir kullanım kısıtı girilmek istenirse bu kısım kullanılır.

    • İstek Sayısı: Belli bir zaman aralığında atılacak toplam istek sayısı.

    • Zaman Aralığı: Kısıtlamada bulunacak zaman aralığı bilgisi.

    • Algoritma: Intervally seçilirse kullanım kısıtlama periyodu tamamlandıktan sonra yeni kullanım haklarının tamamı aktif hale getirilir. Örneğin kullanıcıya saniyede 10 kullanım hakkı verildiğinde her saniyenin sonunda kullanıcıya 10 kullanım hakkı verilir. Greedy seçilirse kullanım hakkı olabilecek en kısa süre içerisinde arttırılmaya çalışılır. Örneğin saniyede 10 kullanım verildiği durumda kullanıcıya her 100 milisaniyede bir yeni kullanım hakkı verilecektir.

  • Bu Plandaki API’ler Planın yetkisi olduğu tüm API’ler burada bulunur

API eklemek için "+API" kısmına tıklanır.

Plana API Ekleme Ekranı
Figure 24. Plana API Ekleme Ekranı
  • API: API bilgisi seçilir.

  • Kullanımı Kısıtlı mı?: API’ye bir kullanım kısıtı getirilmek istenirse bu kısım kullanılır.

    • İstek Sayısı: Belli bir zaman aralığında atılacak toplam istek sayısı.

    • Zaman Aralığı: Kısıtlamada bulunacak zaman aralığı bilgisi.

    • Algoritma: Intervally seçilirse kullanım kısıtlama periyodu tamamlandıktan sonra yeni kullanım haklarının tamamı aktif hale getirilir. Örneğin kullanıcıya saniyede 10 kullanım hakkı verildiğinde her saniyenin sonunda kullanıcıya 10 kullanım hakkı verilir. Greedy seçilirse kullanım hakkı olabilecek en kısa süre içerisinde arttırılmaya çalışılır. Örneğin saniyede 10 kullanım verildiği durumda kullanıcıya her 100 milisaniyede bir yeni kullanım hakkı verilecektir.

Çoklu Ortam Senkronizasyonu

Oluşturma

Oluşturulan Plan Senkronizasyonu
Figure 25. Oluşturulan Plan Senkronizasyonu

İlgili veriler doldurulduktan sonra Kaydet butonuna basılır. Eğer ki çoklu ortam aktifse oluşturma işlemi başarılı olduktan sonra ekranda oluşturulan planın diğer ortamlarla senkronize edilmek istendiği sorulur.

Güncelleme

Güncellenen Plan Senkronizasyonu
Figure 26. Güncellenen Plan Senkronizasyonu

İlgili plan istenen verilerle güncellendikten sonra Güncelle butonuna basılır. Güncelleme işlemi başarılı olduktan sonra ekranda güncellenen plan diğer ortamlarla senkronize edilmek istendiği sorulur.

Katalog → Katalog Ayarları → Veri Kaynakları

Uygulamada kullanılacak veri kaynakları (veritabanı bağlantıları) ayarları burada yapılır. Bu veritabanlarına daha sonra js ve groovy kodları kullanılarak erişilir.

Veri Kaynakları Listeleme
Figure 27. Veri Kaynakları Listeleme
Veri Kaynakları Görüntüleme
Figure 28. Veri Kaynakları Görüntüleme
Veri Kaynakları Düzenleme - Genel Bilgiler
Figure 29. Veri Kaynakları Düzenleme - Genel Bilgiler
Veri Kaynakları Düzenleme - Sertifikalar
Figure 30. Veri Kaynakları Düzenleme - Sertifikalar

Client side sertifika yüklenme özelliği ile ilgili daha fazla bilgi edinmek için, ilgili bağlantıya tıklayarak demo videosunu izleyebilirsiniz.

Katalog → Katalog Ayarları → Ortak Kodlar

Api üzerinde yönlendirme ve dönüşüm için kod yazarken ortak kullanılacak kodlar burada tanımlanır. Böylece aynı kodların birden fazla yerde tekrarlanması önlenir.

Ad, bean ismi, tip ve durum verileri ile filtrelenerek arama yapılabilir.

Düzenleme ve oluşturma ekranında seçilen kod tipine göre (javascript veya groovy) aşağıda çıkan editördeki format ve yazı görünümü değişmektedir.

Ortak Kodlar Listeleme
Figure 31. Ortak Kodlar Listeleme

Groovy Ortak Kod

Ortak Kodlar Groovy Görüntüleme
Figure 32. Ortak Kodlar Groovy Görüntüleme
Ortak Kodlar Groovy Düzenleme
Figure 33. Ortak Kodlar Groovy Düzenleme

JavaScript Ortak Kod

Ortak Kodlar Javascript Görüntüleme
Figure 34. Ortak Kodlar Javascript Görüntüleme
Ortak Kodlar Javascript Düzenleme
Figure 35. Ortak Kodlar Javascript Düzenleme

Groovy Header Rule Script Ortak Kod

Ortak Kodlar Header Rule Script Groovy Görüntüleme
Figure 36. Ortak Kodlar Header Rule Script Groovy Görüntüleme
Ortak Kodlar Header Rule Script Groovy Düzenleme
Figure 37. Ortak Kodlar Header Rule Script Groovy Düzenleme

Groovy Remote Adres set eden script örneği;

package com.mirket.gateway.groovy;

import com.netflix.zuul.context.RequestContext;
import jakarta.servlet.http.HttpServletRequest;

public class HeaderRule implements GroovyHeaderRuleScript {

    public Object execute(RequestContext requestContext, String headerName) {
        HttpServletRequest request = requestContext.getRequest();
        String ipAddress = request.getRemoteAddr();
        requestContext.addZuulRequestHeader(headerName, ipAddress);
        return null;
    }
}

JavaScript Header Rule Script Ortak Kod

Ortak Kodlar Header Rule Script JavaScript Görüntüleme
Figure 38. Ortak Kodlar Header Rule Script JavaScript Görüntüleme
Ortak Kodlar Header Rule Script JavaScript Düzenleme
Figure 39. Ortak Kodlar Header Rule Script JavaScript Düzenleme

Katalog → Katalog Ayarları → Özellik Tanımları

Kullanıcılar, Bir özellik tanımı yapılarak API’de, Api Kullanıcılarında, Organizasyonda ve Plan’da gösterebilirler. Aşağıdaki ekrandan yeni bir özellik tanımlarken hangi entity için olduğunu seçilmektedir. Örneğin API Kullanıcısının üzerine ilgili partnerin telefon numarasını email adresini vs custom özellik olarak eklenebilir. Bu ekrandan eklediğiniz tanımlar ilgili entityleri düzenlerken sayfada input olarak görülür.

Bu kısım raporlama amaçlı belirli alanları tutmak için de kullanılabilir.

Özellik Tanımları Listeleme
Figure 40. Özellik Tanımları Listeleme
Özellik Tanımları Düzenleme
Figure 41. Özellik Tanımları Düzenleme