Bu doküman, Apinizer API Developer/Geliştirici Portalı'nın kurulumunu anlatmaktadır.

1) Giriş

API Tüketicilerinin (API Consumers), bir organizasyonun sunduğu API'lerle ilgili dökümantasyona erişebilecekleri, bunları test edebilecekleri, belirli kısıtlamalar içinde kullanabilecekleri ve bu konular hakkında soru sorup cevaplayabilecekleri son kullanıcı veya geliştirici portalidir.

API Geliştirici Portalı, diğer Apinizer ürünleri gibi Kubernetes Platformu üzerinde çalışır. Portal işlemleri için herhangi bir veritabanı kullanılmaz, bunun yerine doğrudan API Manager'ın sağladığı API'lerle etkileşim sağlanır.

2) Kurulum öncesi adımlar

Apinizer API Portalı'nın kurulumuna başlamadan önce şunlara dikkat edilmelidir:

  • API Manager'ın kurulu olması gerekmektedir. API Manager Kurulumu için Apinizer Kurulumu ve Ayarları dökümanını inceleyiniz.
  • Lisans anahtarınızda API Developer Portalı'nın bulunması gerekmektedir.

3) Kurulum adımları

API Portal Kurulumu iki şekilde yapılmaktadır.

  • Kubernetes yönetimi Apinizer üzerinden yapılıyorsa, API Manager üzerinden API Developer Portal kurulumu yapabilirsiniz.
  • Kubernetes yönetimi Apinizer üzerinden yapılmıyorsa, Kubernetes'e manuel kurulum yapılabilir ve ardından API Manager ile bağlantı sağlanabilir.


3.1) API Manager üzerinden API Developer Portal kurulumu

API Manager üzerinden API Developer Portalı kurulumu için Genel Ayarlar menüsünde aşağıdaki bölümün aktif olması gerekmektedir.


Kubernetes yönetiminin Apinizer üzerinden yapıldığından emin olduktan sonra aşağıdaki adımları takip ederek API Developer Portal kurulumu yapılabilir:

API Manager'da, Yönetim → Sunucu Yönetimi → Kubernetes Resources sayfasına gidin. Deployment & Pods sekmesinden API Portali'ni etkinleştirin. Gerekli tanımları yaparak kurulumu tamamlayın.


Açılan diyalogda, kurumunuza uygun olarak zorunlu alanları tanımlayın.


AlanAçıklama
Apinizer Portal Management API URLAPI Developer Portal'in Apinizer Management API'lerini tüketebilmesi için gerekli olan API Manager tarafından çalıştırılan Management API adresidir. Örnek adres: http://apimanager-ui-ip-address:port/apiportal/management
Apinizer Portal Management API Key/Token

API Geliştirici Portalının Apinizer Yönetim API'lerini tüketebilmesi için gereken token bilgisidir. Token bilgisi, Profilim → sayfasında yeni token oluşturularak veya mevcut tokenlardan biri kullanılarak elde edilebilir. Personel tokenları genellikle apnz_ ile başlar.

Sayısı (Count)

Gateway engine sayısı, Kubernetes Cluster'daki replicaSet ile eş değerdir.

CPU

Pod'un kullanacağı maksimum CPU core sayısı bilgisidir.

Bellek (Memory)

Pod'un kullanacağı maksimum bellek değeridir.

Bellek Birimi (Memory Unit)

Bellek için gerekli olan değerin birimi seçilir; MB, GB. 

Ek Değişkenler (Additional Variables)

Pod içinde çalıştırılacak varsayılan ve opsiyonel değişkenler ve değerleri tanımlanır. Varsayılan değişkenler silinemez, sadece değerleri düzenlenebilir.

Host Takma Adları (Host Aliases)

Ağda bulunan IP adresleri bazen host isimleri arkasına konulabilir, bunlar eğer nameserver ya da host dosyasına tanımlanmamışsa ya da bir şekilde Apinizer'ın bunları çözmesi sağlanamamışsa, worker podların bu isimleri çözmesi için Host Alias tanımı yapılmalıdır.

Ek değişkenler alanındaki Java Options ayarını yapılandırırken aşağıdaki uyarı dikkate alınmalıdır;

-Xmx ve -Xms ayarlarının otomatik yığın (heap) boyutlandırmasını devre dışı bıraktığını lütfen unutmayınız.

Apinizer, JVM Yığın (Heap) değerlerini konteyner içinde çalıştığından konteynere verilen belleğin %75'ini kullanacak şekilde ayarlar.

UseContainerSupport varsayılan olarak aktif gelmektedir.

Eski bayraklar (flag) -XX: {Min | Max} RAMFraction artık kullanımdan kaldırıldı. 0.0 ve 100.0 arasında bir değer alan ve varsayılan olarak 25.0 olan yeni bir -XX: MaxRAMPercentage bayrağı (flag) vardır. Bu nedenle, 1 GB bellek sınırı varsa, JVM yığını (heap) varsayılan olarak ~ 250 MB ile sınırlıdır.

Detaylı bilgi için tıklayınız.


Yukarıdaki adımlar tamamlandıktan ve Kubernetes üzerinde API Portal'e ait olan Pod'ların hazır durumda olduğundan emin olduktan sonra, Portal Arayüzüne erişmek için aşağıdaki adresten erişim sağlanır.

http://<KUBERNETES_WORKER_IP>:<API_PORTAL_PORT>
POWERSHELL

3.2) Manuel API Developer Portal Kurulumu

API Developer Portali'nin manuel olarak kurulması için aşağıdaki adımlar takip edilmelidir.

Önemli: API Manager API adresi ve API Key/Token bilgisini içeren Kubernetes Secret oluşturulmalıdır. Aşağıdaki bilgiler kurumunuza göre doldurulmalıdır.

  • apinizerManagementApiBaseUrl : API Developer Portal'in Apinizer Management API'lerini tüketebilmesi için gerekli olan API Manager üzerinde çalışan Management API adresidir. Örnek bir adres: http://apimanager-ui-ip-address:port
  • apiKey: API Developer Portal'in Apinizer Management API'lerini tüketebilmesi için gerekli olan token bilgisidir. Token bilgisi için "Profilim" sayfasında yeni bir token oluşturabilir veya mevcut tokenlardan birini kullanabilirsiniz. 

    Kişisel Token'lar apnz_ ile başlar.

API_MANAGER_URL='<APINIZER_MANAGEMENT_API_BASE_URL>'

API_MANAGER_APIKEY='<API_KEY>'

echo -n ${API_MANAGER_URL} | base64
//Bunun çıktısını bir sonraki adımda <ENCODED_URL> değişkeni yerine koyacağız
 
echo -n ${API_MANAGER_APIKEY} | base64
//Bunun çıktısını bir sonraki adımda <ENCODED_API_KEY> değişkeni yerine koyacağız

POWERSHELL

vi api-portal-secret.yaml 
POWERSHELL

apiVersion: v1
kind: Namespace
metadata:
  name: apinizer-portal

---
apiVersion: v1
kind: Secret
metadata:
 name: apinizer-portal-secret
 namespace: apinizer-portal
type: Opaque
data:
  apinizerManagementApiBaseUrl: <ENCODED_URL>
  apiKey: <ENCODED_API_KEY> 
YML
kubectl apply -f api-portal-secret.yaml
POWERSHELL
vi apinizer-portal-deployment.yaml 
POWERSHELL
apiVersion: apps/v1
kind: Deployment
metadata:
  name: apinizer-portal
  namespace: apinizer-portal
spec:
  replicas: 1
  selector:
    matchLabels:
      app: apinizer-portal
      version: v1
  template:
    metadata:
      labels:
        app: apinizer-portal
        version: v1
    spec:
      containers:
        - name: apinizer-portal-app
          image: apinizercloud/portal:<APINIZER_VERSION>
          env:
            - name: SPRING_PROFILES_ACTIVE
              value: prod
            - name: JAVA_OPTS
              value: ' -Xmx1400m -Xms1400m'
            - name: API_PORTAL_MANAGEMENT_API_BASE_URL
              valueFrom:
                secretKeyRef:
                  key: apinizerManagementApiBaseUrl
                  name: apinizer-portal-secret
            - name: API_PORTAL_MANAGEMENT_API_KEY
              valueFrom:
                secretKeyRef:
                  key: apiKey
                  name: apinizer-portal-secret
          resources:
            limits:
              memory: 2Gi
              cpu: 1
          ports:
            - name: http
              containerPort: 8080

---
apiVersion: v1
kind: Service
metadata:
  name: apinizer-portal-service
  namespace: apinizer-portal
  labels:
    app: apinizer-portal
spec:
  selector:
    app: apinizer-portal
  type: NodePort
  ports:
    - name: http
      port: 8080
      nodePort: <API_PORTAL_PORT>
YML
kubectl apply -f apinizer-portal-deployment.yaml 
POWERSHELL


Önemli

Bu aşamaya kadar API Developer Portal arayüzü kurulumu yapılmış olabilir, ancak API'lerin API Developer Portal üzerinde görüntülenebilmesi, Credential'ların oluşturulması ve diğer yeteneklerin kullanılabilmesi için API Manager ile entegrasyonunun yapılması gerekmektedir.

3.3) API Developer Portal'in API Manager ile Entegrasyonu

API Manager'da, Yönetim → Portal Yönetimi → Ayarlar sayfasına giderek, kurumunuza uygun tanımları yapınız.

Öncelikle, API Developer Portal adresinizi tanımlamanız gerekmektedir.

Alan

Açıklama

Size Özel Portal URL'si (Custom Portal URL)

API Portal arayüzünün erişim adresi girilir. Örnek: https://apiportal.company.com

Hesapları/Geliştiricileri Otomatik Onaylayın (Auto Approve Account/Developers)

Bu özellik etkinleştirildiğinde, API Portalı üzerinden kayıt olan hesaplar/geliştiriciler(account/developer) doğrudan API Portalına giriş yapabilirler, kaydın Portal Yöneticisi tarafından onaylanmasına gerek kalmaz.

Kurum Yöneticisinin Kendi Hesaplarını Yönetmesine İzin Verin (Allow Organization Administrator to Manage their own Accounts)

Bu özellik etkinleştirildiğinde, Account/Developer menüsü üzerinden yeni kayıt oluştururken Kurum Yöneticisi'nin kendi hesaplarını yönetme yetkisi verilip verilmeyeceğini belirler. Bu ayar, hesap/geliştirici'nin API Portalı tarafında kendi hesabının oluşturulmasına izin verir.

Kullanıcılara E-posta Göndermek için E-posta Sunucunuzu Tanımlayın (Define Your EMail Server for Sending Email to Users)

API Portalı üzerinden kullanıcılara gönderilecek e-postalar için gerekli e-posta sunucusunun seçimi tanımlanır.

API Performans Metriklerinizi Tanımlayın (Define your API Performance Metrics)

Bu bölümde, aşağıdaki alanlara ait yapılandırmalar yapılır;

  • İyi Performans için Maksimum Kabul Edilebilir Değer (Max Acceptable Value For Good Performance): Bir isteğin beklenen zamanda yanıtlanma süresinin, normal olduğunu gösteren maksimum değer girilir.
  • Kötü Performans için Minimum Kabul Edilebilir Değer (Min Acceptable Value For Bad Performance): Bir isteğin beklenen zamanda yanıtlanma süresinin, anormal olduğunu gösteren minimum değer girilir.

API Portal Yasal Sözleşmenizi Tanımlayın (Define your API Portal Legal Agreement)

API Portal'a kayıt olma sayfasında, kullanıcının onaylaması gereken şart ve koşulları içeren metin yönetilir.

3.4) API Developer Portal'i SSL ile Başlatma

Detaylı bilgi için tıklayınız.