> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apinizer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# API Trafiği

> Projedeki tüm API Proxy'lere gelen istek ve yanıtları detaylarıyla birlikte listeleyebilirsiniz. Mesajlardaki sorunları araştırabilirsiniz, filtreleme yapabilirsiniz, detaylı görüntüleme, JSON formatında görüntüleme, indirme ve hızlı test işlemlerini gerçekleştirebilirsiniz.

API Trafiği ekranında projedeki tüm API Proxy'lere gelen istek ve yanıtlar detaylarıyla birlikte listelenir. Bu ekran özellikle mesajdaki bir sorunu araştırmayı kolaylaştırır.

<img src="https://mintcdn.com/apinizer/IgzfkEW2Y56EFPv9/images/analytic/api-traffic-overview.png?fit=max&auto=format&n=IgzfkEW2Y56EFPv9&q=85&s=42bc019e4738d6a844cd2cef7575c3a5" alt="API Trafiği Ekranı" width="1000" style={{ borderRadius: '0.5rem' }} data-path="images/analytic/api-traffic-overview.png" />

<Info>
  Bir API Proxy birden fazla [Ortam](/tr/concepts/temel-kavramlar/ortam-nedir)'a yüklenebileceği için metrikler, ortam bazlı sorgulanır. Tüm analitik ekranlarında öncelikle **Ortam bilgisi seçilerek** metrikler filtrelenir.
</Info>

## Özellikler

<CardGroup cols={2}>
  <Card title="Tüm API Proxy Trafiği" icon="chart-network">
    Projedeki tüm API Proxy'lerin trafiğini tek bir ekranda görüntüleyebilirsiniz
  </Card>

  <Card title="Gelişmiş Filtreleme" icon="filter">
    Basit ve gelişmiş filtreleme seçenekleri ile istediğiniz kayıtlara ulaşabilirsiniz
  </Card>

  <Card title="Detaylı İnceleme" icon="magnifying-glass">
    Her isteğin mesaj akışını bölümlere göre detaylı olarak inceleyebilirsiniz
  </Card>

  <Card title="Yönlendirme Takibi" icon="route">
    İsteklerin hangi adreslere nasıl yönlendirildiğini takip edebilirsiniz
  </Card>

  <Card title="JSON Formatı" icon="code">
    Log kayıtlarını JSON formatında görüntüleyebilir ve indirebilirsiniz
  </Card>

  <Card title="Hızlı Test" icon="bolt">
    İstekleri Test Konsola aktararak hızlıca yeniden test edebilirsiniz
  </Card>
</CardGroup>

## Yönlendirme Adresi (Routing Address)

Bu alan ilgili API Proxy'nin yönlendirildiği adres bilgisini tutar. Bu alan eğer boş ise, isteğin backend adresine gitmediğini ifade eder.

Backend olarak Apinizer'ı kullanan servisler `apinizer://` ön eki ile gösterilir, tam olarak `apinizer://<BİLEŞEN_ADI>/<METOT_ADI>` formatında yazılır.

<Info>
  Routing adresi kapatılarak backend'e gitmesi engellenen proxy'ler için de bu gösterim geçerlidir.
</Info>

### Yönlendirme Adresi Değerleri

| Routing Adresi                                                                      | Koşul                                                                                                                                                |
| ----------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `apinizer://mirror.routing/<METOT_ADI>`                                             | API Proxy tipi Swagger 2.x, OpenAPI/Swagger 3.0.x, WSDL, Reverse Proxy veya No-Spec API ve **Routing seçeneği kapatılmış ve Mirror seçeneği açık**   |
| `apinizer://specresponse.routing/<METOT_ADI>`                                       | API Proxy tipi Swagger 2.x, OpenAPI/Swagger 3.0.x, WSDL, Reverse Proxy veya No-Spec API ve **Routing seçeneği kapatılmış ve Mirror seçeneği kapalı** |
| `apinizer://db2api.apicreator/<METOT_ADI>`                                          | API Proxy tipi DB2API                                                                                                                                |
| `apinizer://script2api.apicreator/<METOT_ADI>`                                      | API Proxy tipi Script2API                                                                                                                            |
| `apinizer://mockapi.apicreator/<METOT_ADI>`                                         | API Proxy tipi Mock API                                                                                                                              |
| `apinizer://connector/<METOT_ADI>`                                                  | API Proxy tipi Connector                                                                                                                             |
| `apinizer://maintenance`                                                            | API Proxy bakım modunda                                                                                                                              |
| `apinizer://cache/<METOT_ADI>`                                                      | Herhangi bir API Proxy tipinde ve **Cache'leme açık**                                                                                                |
| `http://<BACKEND_ADRESİ>/<METOT_ADI>` <br /> `https://<BACKEND_ADRESİ>/<METOT_ADI>` | API Proxy tipi Swagger 2.x, OpenAPI/Swagger 3.0.x, WSDL, Reverse Proxy, No-Spec API veya KPS ve **Routing seçeneği açık**                            |
| `apinizer://spec`                                                                   | API Proxy tipi Swagger 2.x, OpenAPI/Swagger 3.0.x, WSDL, Reverse Proxy, No-Spec API ve spec adresine erişim                                          |
| *(Boş)*                                                                             | İsteğin çeşitli sebeplerle backend adresine gidememesi                                                                                               |

<Warning>
  Websocket ve gRPC istekleri Apinizer'a gelen ve Apinizer'dan çıkan veriler şeklinde tutulmakta olduğundan bu tip API Proxylerde sadece 2 bölge vardır.
</Warning>

## Filtreleme

**Daha fazla filtre (More options)** seçeneği ile 2 farklı tipte filtreleme yapılabilir:

<Tabs>
  <Tab title="Basit Filtreleme (Basic)">
    Kayıtlara, belirli bir zaman aralığı, uç nokta (endpoint) ya da HTTP metodu gibi belirlenmiş kriterler ile filtre uygulanabilir.

    <img src="https://mintcdn.com/apinizer/IgzfkEW2Y56EFPv9/images/analytic/api-traffic-basic-filter-overview.png?fit=max&auto=format&n=IgzfkEW2Y56EFPv9&q=85&s=0e0a50bf4e5f871a1779a28942ee1a9e" alt="Basit Filtreleme" width="1000" style={{ borderRadius: '0.5rem' }} data-path="images/analytic/api-traffic-basic-filter-overview.png" />

    **Filtreleme Kriterleri:**

    * **Tarih Aralığı**: Başlangıç ve bitiş tarihi seçimi
    * **API Proxy**: Belirli API Proxy'ler için filtreleme
    * **Endpoint/Method**: Belirli endpoint veya metod için filtreleme
    * **HTTP Metod**: GET, POST, PUT, DELETE, vb.
    * **Durum Kodu**: 200, 404, 500 gibi HTTP durum kodları
    * **Sonuç Tipi**: Başarılı, Başarısız, Bloklanmış
  </Tab>

  <Tab title="Gelişmiş Filtreleme (Advanced)">
    Kullanıcı iç içe filtreler oluşturabilir ve karmaşık sorgular yapabilir.

    <img src="https://mintcdn.com/apinizer/IgzfkEW2Y56EFPv9/images/analytic/api-traffic-advanced-filter-overview.png?fit=max&auto=format&n=IgzfkEW2Y56EFPv9&q=85&s=c6192fd0b11043133272eacffecf6d6e" alt="Gelişmiş Filtreleme" width="1000" style={{ borderRadius: '0.5rem' }} data-path="images/analytic/api-traffic-advanced-filter-overview.png" />

    <Info>
      Gelişmiş filtre oluşturma sekmesi, analitik üzerinde **gelişmiş lisansı** varsa aktifleşir.
    </Info>

    **Gelişmiş Filtreleme Seçenekleri:**

    * **API Proxy**: Birden fazla API Proxy seçimi
    * **Metod/Endpoint Adı**: Method/Endpoint Name
    * **HTTP Metod**: HTTP Method
    * **HTTP Durum Kodu**: HTTP Status Code
    * **İşlem Sonuç Tipi**: Result Type
    * **İstek Adresi**: Request Address
    * **Gönderilen Adres**: Routing Address
    * **Kullanıcı Adı ya da Anahtar Kelime**: Username or Key
    * **Correlation ID**: Apinizer Correlation ID
    * **İstemciden Alınan İsteğin Gövdesi**: From Client Body
    * **Backend API'ye Gönderilen İsteğin Gövdesi**: To Backend API Body
    * **Backend API'den Alınan Yanıtın Gövdesi**: From Backend API Body
    * **İstemciye Gönderilen Yanıtın Gövdesi**: To Client Body
    * **AND/OR/NOT** operatörleri ile karmaşık sorgular
  </Tab>
</Tabs>

### Sorgu Tipleri

Filtreleme yapılan alanlara 2 tip sorgu uygulanmaktadır:

<AccordionGroup>
  <Accordion title="Term Query">
    Aranan değer (keyword) ile loglanan verinin **tam olarak eşleştiği** loglar döndürülür.

    **Bu sorgunun uygulandığı alanlar:**

    * API Proxy
    * İşlem Sonuç Tipi (Result Type)
    * HTTP Durum Kodu (HTTP Status Code)
    * HTTP Metot (HTTP Method)
    * Kullanıcı Adı ya da Anahtar Kelime (Username or Key)
    * Correlation ID
  </Accordion>

  <Accordion title="Match Query">
    Tüm metin üzerinde arama yapma sorgusudur. Aranan değer, arama yapılmadan önce **analiz edilir**.

    **Analiz Süreci:**

    1. Metin dilbilgisi kuralları üzerinden parçalara ayırılır (numara, noktalama işaretleri, vb.)
    2. Parçalar 'Lower Case Token Filter' aşamasından geçerek küçük harflere dönüştürülür
    3. Örnek: `'The 2 QUICK Brown-Foxes jumped over the lazy dog's bone.'` → `[ the, 2, quick, brown, foxes, jumped, over, the, lazy, dog's, bone ]`

    **Eşleşme Mantığı:**

    * Parçaların arasında **OR** operatörü vardır
    * Parçalar log dokümanındaki alanda kaç tanesi var, ne sıklıkla kullanılmış gibi kriterler baz alınarak **skor değeri** elde edilir
    * Bu skor değerine göre ilgili dokümanlar döndürülür

    **Bu sorgunun uygulandığı alanlar:**

    * Metot/Endpoint Adı (Method/Endpoint Name)
    * İstek Adresi (Request Address)
    * Gönderilen Adres (Routing Address)
    * İstemciden Alınan İsteğin Gövdesi (From Client Body)
    * İstemciye Gönderilen Yanıtın Gövdesi (To Client Body)
  </Accordion>

  <Accordion title="Wildcard Query">
    Bir wildcard karakter kalıbıyla eşleşen terimleri içeren dokümanlar döndürülür.

    **Kullanım:**

    * Arama sonuçlarınızı genişletmek için kelimenin önüne ya da sonuna `*` karakteri eklenmelidir
    * Örnek: `user*` → user ile başlayan tüm kelimeler
    * Örnek: `*admin` → admin ile biten tüm kelimeler

    **Bu sorgunun uygulandığı alanlar:**

    * İstek Adresi (Request Address)
    * Gönderilen Adres (Routing Address)
  </Accordion>

  <Accordion title="Gövde Alanlarında Arama (Body Search)">
    **From Client Body**, **To Backend API Body**, **From Backend API Body** ve **To Client Body** alanlarında arama yapılırken aşağıdaki kurallar geçerlidir:

    **Tek kelime arama:**

    * `doğum` gibi boşluk içermeyen ifadeler wildcard substring arama olarak çalışır — ilgili kelimenin geçtiği tüm kayıtlar döndürülür.

    **Boşluklu ifade arama:**

    * `doğum tarihi` gibi boşluk içeren ifadeler, kelimelerin **yan yana** geçtiği kayıtlar için arama yapar — phrase arama davranışı gösterir.
    * Yıldız karakteri eklenerek de kullanılabilir: `*doğum tarihi*`

    <Tip>
      En doğru sonuçlar için aranan metnin tam yazımını kullanın. Büyük/küçük harf duyarlılığı konusunda sonuçlar değişkenlik gösterebileceğinden tam yazımı tercih edin.
    </Tip>
  </Accordion>
</AccordionGroup>

## Detaylı Görünüm (Detailed View)

Log kaydın sağ tarafında yer alan **Detaylı Görünüm (Detailed View)** tuşuna basıldığında mesajın log bilgileri, istek ve yanıt hattındaki bölümlere göre gruplanarak gelir.

<img src="https://mintcdn.com/apinizer/IgzfkEW2Y56EFPv9/images/analytic/api-traffic-detailed-view-overview.png?fit=max&auto=format&n=IgzfkEW2Y56EFPv9&q=85&s=86ff177fc7776fe1222129fec5278ca0" alt="Detaylı Görünüm Dialog" width="1000" style={{ borderRadius: '0.5rem' }} data-path="images/analytic/api-traffic-detailed-view-overview.png" />

### Mesaj Bölgeleri

Log kaydı aşağıdaki bölgelere göre gruplandırılmıştır:

<Steps>
  <Step title="Genel Bakış (Overview)">
    İsteğin özet bilgileri, durum kodu, toplam süre ve genel metrikler
  </Step>

  <Step title="İstemciden API Proxy'e Gelen İstek">
    * Request Headers
    * Request Parameters
    * Request Body
    * Client IP ve metadata
  </Step>

  <Step title="API Proxy'den Backend'e Giden İstek">
    * Backend URL ve yönlendirme bilgileri
    * Gönderilen Headers
    * Gönderilen Body
    * Routing detayları
  </Step>

  <Step title="Backend'den API Proxy'e Gelen Yanıt">
    * Response Status Code
    * Response Headers
    * Response Body
    * Backend yanıt süresi
  </Step>

  <Step title="API Proxy'den İstemciye Giden Yanıt">
    * İstemciye dönen Headers
    * İstemciye dönen Body
    * Toplam işlem süresi
  </Step>
</Steps>

<Info>
  Varsayılan olarak **Genel Bakış** bölümü açık gelir. İncelenmek istenen bölümün adına tıklandığında o alana ilişkin log kayıtları görüntülenir.
</Info>

## JSON Görünüm

Kaydın sağ tarafında yer alan **JSON Görünüm** tuşuna basıldığında log kaydın JSON hali ekrana gelir.

<img src="https://mintcdn.com/apinizer/IgzfkEW2Y56EFPv9/images/analytic/api-traffic-json-view-overview.png?fit=max&auto=format&n=IgzfkEW2Y56EFPv9&q=85&s=52add67af46a62f70bd70e4ddbf390fb" alt="JSON Görünüm Dialog" width="1000" style={{ borderRadius: '0.5rem' }} data-path="images/analytic/api-traffic-json-view-overview.png" />

<Info>
  Bu alandaki anahtar değerler okumayı kolaylaştırmak amacıyla log dosyasında olduğu şekilde değil **okunabilir şekilde** yazılmıştır.

  Örneğin:

  * "apiProxyId" değeri log kaydında "api" şeklinde tutulmaktadır
  * Log kaydı indirildiğinde esas tutulan log kaydı görüntülenecektir

  Gerçek log dosyası formatı için [API Trafiği Log Kaydı Veri Yapısı](/tr/analytic/api-trafigi-log-kaydi-veri-yapisi) sayfasındaki "Template Veri Yapısı Tablosu"nu inceleyebilirsiniz.
</Info>

<Warning>
  Eğer log kaydının veri büyüklüğü **500KB'den** büyükse **Detaylı Göster** ve **JSON Formatında Görüntüle** seçenekleri kapalı hale gelir. Bu durumda log kaydını incelemek için **indirilmelidir**.
</Warning>

## Log Kaydı İndirme

Kaydın sağ tarafında yer alan **İndir** tuşuna basıldığında kaydın JSON hali `.zip` formatında indirilir.

**İndirme Seçenekleri:**

* **Tek Kayıt**: Seçili kaydı indirir
* **Tüm Sonuçlar**: Filtrelenmiş tüm kayıtları indirir

<Tip>
  İndirilen log dosyaları, detaylı analiz yapmak veya dış araçlarla işlemek için kullanılabilir.
</Tip>

## Hızlı Test

Kaydın sağ tarafında yer alan **Hızlı Test** tuşuna basıldığında kayda gelen orijinal mesaj içeriği [Test Konsola](/tr/develop/test-debug-araclari/test-console) yerleştirilmiş şekilde Test Konsol ekranı açılır.

Bu özellik, ilgili kaydın tekrar test edilebilmesi için kolaylık sağlar.

<Warning>
  **Hızlı Test** tuşunun görünmesi için genel ayarlarda **etkinleştirilmelidir**.
</Warning>

## İlgili Kaynaklar

<CardGroup cols={2}>
  <Card title="API Proxy API Trafiği" icon="chart-line" href="/tr/develop/izleme-analiz/api-trafigi">
    Tek bir API Proxy'nin trafik sekmesi
  </Card>

  <Card title="Dashboard (Pano)" icon="chart-bar" href="/tr/analytic/dashboard">
    API Proxy performans metrikleri ve görselleştirme
  </Card>

  <Card title="İzleme (Tracing)" icon="magnifying-glass" href="/tr/analytic/tracing">
    Detaylı trace ve debug işlemleri
  </Card>

  <Card title="Sorgu Editörü" icon="code" href="/tr/analytic/query-editor/sorgular-queries">
    Gelişmiş sorgu ve filtre tanımları
  </Card>

  <Card title="API Traffic Log Ayarları" icon="cog" href="/tr/analytic/api-traffic-log-ayarlari">
    Log kayıt yapılandırmaları
  </Card>

  <Card title="Log Veri Yapısı" icon="database" href="/tr/analytic/api-trafigi-log-kaydi-veri-yapisi">
    API trafik log kaydı veri yapısı
  </Card>
</CardGroup>
