Akışları yapılandırma

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerini görüntüleyin.

Akışlar, API proxy'lerinin temel yapı taşlarıdır. Akışlar, bir API proxy'si tarafından politikaların ve kodun yürütüldüğü sırayı yapılandırarak API'nin davranışını planlamanıza olanak tanır.

Akışlara kavramsal bir genel bakış için Proxy'nin akışlarla nasıl çalıştığını kontrol etme başlıklı makaleye bakın.

Bu konu, koşullu akış oluşturmanın ve üst düzeylerde akışlara mantık (politikalar) eklemeyi açıklar. Koşul oluşturma sanatı, bu konuda ele alınandan daha fazla ayrıntı içerir. Bu ayrıntı için Akış değişkenlerine genel bakış ve Akış değişkenlerine sahip koşullar bölümüne bakın.

Akışlara politika ekleme

Edge; güvenliği uygulamak, trafiği yönetmek ve mesajları değiştirmek için birçok farklı önceden tanımlı politika türüyle birlikte gelir. Ayrıca politikalar, mesaj işlemeyi tamamen özelleştirmek için kendi özel kodunuzu eklemenize olanak tanır.

Örneğin:

  • ProxyEndpoint'in PreFlow isteğine bir OAuth güvenlik politikası ekleyin. ProxyEndpoint isteği PreFlow, ardışık düzendeki ilk akış olduğundan istek, güvenlik politikalarınızı ihlal ediyorsa isteği hemen reddedebilirsiniz.
  • Bir yanıtı JSON'dan XML'e dönüştürmek için TargetEndpoint'in PostFlow yanıtına bir JSON'dan XML'e dönüştürme politikası ekleyin.
  • İsteği işlemek için JavaScript kodunu çalıştırmak üzere ProxyEndpoint'in Koşullu Akışına JavaScript politikası ekleyin

Koşullu akış oluşturduktan sonra bu akış politika eki için kullanılabilir. Akış seçildiğinde akışa yeni veya mevcut bir politika eklemek için istek ya da yanıt şemasındaki + Adım simgesini tıklayın.

Gezinme menüsünde sorun adlı örnek bir koşullu akış vurgulanıyor ve Akış bölmesinde Adım düğmesi gösteriliyor.

Adım Ekle bölmesinde, Politika türü Kota ve görünen ad olan Kota-2 ile yeni bir politika örneği oluşturulur.

Politikayı seçili akışa ekleyerek API proxy'sini, yalnızca söz konusu akış URI'sı ve fiil kombinasyonuna yapılan istekler için zorunlu kılmak üzere yapılandırmış olursunuz. Örneğin, politikayı istekteki learn akışına eklerseniz proxy düzenleyicinin kod görünümünde aşağıdaki XML oluşturulur:

<ProxyEndpoint name="default">
...
   <Flow name="issue">
        <Description/>
        <Request>
            <Step>
                <Name>Quota-2</Name>
            </Step>
        </Request>
        <Response/>
        <Condition>(proxy.pathsuffix MatchesPath "/issue/**") and (request.verb = "GET")</Condition>
    </Flow>
... 
</ProxyEndpoint>

Bu yapılandırmada, URI'da .../issue/** biçiminde bir GET isteği geliyorsa (son yönlendirme eğik çizgisinden sonra URI'de herhangi bir şey varsa) kota bu API çağrısında zorunlu kılınır.

Koşullu akışlar hakkında

PreFlow veya PostFlow'a eklenen tüm politikalar her zaman yürütülür. Bununla birlikte, koşullu akıştaki politikalar yalnızca akışın koşulu doğru olarak değerlendirilirse yürütülür.

Bir isteğin ve yanıtın işlenmesi sırasında, her segment için yalnızca bir koşullu akış yürütülür: bu, durumu doğru olarak değerlendirilen ilk akıştır. Bu, aşağıdaki koşulların her biri kapsamında bir koşullu akışa sahip olabileceğiniz anlamına gelir:

  • ProxyEndpoint istek ardışık düzeni
  • TargetEndpoint'in istek ardışık düzeni
  • ProxyEndpoint'in yanıt ardışık düzeni
  • TargetEndpoint'in yanıt ardışık düzeni

Video: Koşullu akışlar hakkında daha fazla bilgi edinmek için kısa bir video izleyin.

Örneğin, aşağıdaki ProxyEndpoint tanımı API proxy'sine yapılan tüm HTTP GET isteklerinde ProxyEndpoint tarafından yürütülen koşullu bir akışı gösterir:

<ProxyEndpoint name="default">
  <PreFlow>
    <Request/>
    <Response/>
  </PreFlow>   
  <Flows>
    <Flow name="Flow-1">
      <Condition>request.verb="GET"</Condition>
      <Request/>
      <Response/>
    </Flow>
  </Flows>
  <PostFlow>
    <Request/>
    <Response/>
  </PostFlow>
  ...
</ProxyEndpoint>

Koşulun request.verb akış değişkenine başvuruda bulunduğuna dikkat edin. Akış değişkeni, Edge tarafından işlenen bir API işlemiyle ilişkili durum bilgilerini barındıran referanslardır. Edge, başvuruda bulunabileceğiniz birçok durum değişkeni tanımlar.

RESTful hizmetleri, API kaynaklarından oluşan koleksiyonlardır. API kaynağı, geliştiricilerin API'nizi çağırarak erişebileceği bazı varlıkları tanımlayan bir URI yolu parçasıdır. Örneğin, hizmet arka ucunuz hava durumu raporları ve hava durumu tahminleri sağlıyorsa API'niz, bu API kaynaklarıyla eşleşen iki koşullu akış tanımlayabilir: /reports ve /forecasts. Bir API çağrısı, URL'de bu kaynaklardan birini içerdiğinde koşul doğru olarak değerlendirilir ve koşullu akışa ekli mantık yürütülür.

Ardından uygulama geliştiriciler, şu biçimde bir URL'ye istekte bulunarak kaynaklarınıza erişir:

http://myAPIs.myCo.com/weather/reports

veya:

http://myAPIs.myCo.com/weather/forecasts

API proxy'sinde, belirli bir kaynağa karşılık gelen koşullu bir akış tanımlayabilirsiniz:

<ProxyEndpoint name="default">
  <PreFlow>
    <Request/>
    <Response/>
  </PreFlow>   
  <Flows>
    <Flow name="Flow-1">
      <Condition>(proxy.pathsuffix MatchesPath "/reports")</Condition>
      <Request/>
      <Response/>
    </Flow>
    <Flow name="Flow-2">
      <Condition>(proxy.pathsuffix MatchesPath "/forecasts")</Condition>
      <Request/>
      <Response/>
    </Flow>
  </Flows>
  <PostFlow>
    <Request/>
    <Response/>
  </PostFlow>
  ...
</ProxyEndpoint>

Bu örnekte, API proxy'sine erişmek için kullanılan URL'nin son ek bölümünü içeren proxy.pathsuffix akış değişkenine referans verirsiniz. Ardından, her kaynağın koşullu akışına farklı politikalar ekleyebilirsiniz.

Koşullu akış ekleme

Bu kısa örnekte, yalnızca istek mesajı bir HTTP GET olduğunda yürütülen bir akış oluşturabilirsiniz.

Koşullu akış eklemek için API proxy oluşturucuda Geliştir sekmesini seçin.

Proxy oluşturucu Geliştirme sekmesi

İstediğiniz uç noktadaki + simgesini tıklayın.

Koşullu akış ekle düğmesi

Yeni Koşullu Akış formunda akışı adlandırabilir ve bir koşulu yapılandırabilirsiniz. Aşağıdaki örnekte, temel yoldan sonraki herhangi bir URI'da bir GET fiilinin (PUT, POST vb. yerine) istek mesajının HTTP'sini değerlendiren basit bir koşul eklersiniz.

Yeni Koşullu Akış bölmesinde, akış Akış-1 olarak adlandırılır ve koşul türü, yol ve fiil yapılandırılır.

(Akış değişkenleri ve koşulları bölümünde koşullu ifadeler oluşturmayı öğrenin.)

Akış-1 adlı yeni akış, artık Gezinme menüsünde görünür.

Akış 1 vurgulandı

Şimdi ProxyEndpoint için XML yapılandırmasını gözlemleyin. Navigator menüsünde Flow-1'i seçin.

Aşağıdaki yapılandırmayı görürsünüz.

<PreFlow name="PreFlow">
    <Request/>
    <Response/>
</PreFlow>   
<Flows>
    <Flow name="Flow-1">
      <Request/>
      <Response/>
      <Condition>(proxy.pathsuffix MatchesPath "/**") and (request.verb = "GET")</Condition>
    </Flow>
</Flows>
<PostFlow name="PostFlow">
    <Request/>
    <Response/>
</PostFlow>

Sonraki adımlar

Aşağıdaki konularda koşullar oluşturma ve değişkenleri kullanma hakkında daha fazla ayrıntı sağlanmaktadır: