4. Adım: Politika ekleme

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Hedef uç noktanızı değiştirdiğinize göre artık proxy'nize bir politika ekleyebilirsiniz.

Politika, API proxy'leriniz aracılığıyla mesaj akışındaki farklı noktalara ekleyebileceğiniz bir Edge bileşenidir. Politikalar, mesaj biçimlerini dönüştürebilir, erişim denetimini zorunlu kılabilir, uzak hizmetleri çağırabilir, kullanıcıları yetkilendirebilir, mesaj içeriğini olası tehditlere karşı inceleyebilir ve daha pek çok şey yapabilir.

Bu eğitimde, XMLtoJSON politikasını proxy'nize ekleyeceksiniz. Bu politika, bir XML mesajının yükünü JSON'a dönüştürür. Ayrıca yanıtın Content-Type başlığını da değiştirir.

XML'den JSON'a politikasını proxy'nize eklemek için:

  1. Tarayıcıda Edge kullanıcı arayüzünü açıp giriş yapın.
  2. Ana pencerede API Proxies'i (API Proxy'leri) tıklayın ve bir proxy seçin. Bu örnekte, 1. adım: API proxy'si oluşturma bölümünde oluşturduğunuz proxy'yi seçin.
  3. Geliştir sekmesini tıklayın:

    Edge, API Proxy Düzenleyicisi'ni gösterir.

  4. Navigator bölmesinde Proxy Endpoints > default > PreFlow'u (Proxy Uç Noktaları > varsayılan > PreFlow) tıklayın:

    Edge, Flow düzenleyiciyi gösterir:

    Ayrıca Edge, varsayılan Proxy Endpoint yapılandırmasını Kod bölmesinde gösterir:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ProxyEndpoint name="default">
      <Description/>
      <FaultRules/>
      <PreFlow name="PreFlow">
        <Request/>
        <Response/>
      </PreFlow>
      <PostFlow name="PostFlow">
        <Request/>
        <Response/>
      </PostFlow>
      <Flows/>
      <HTTPProxyConnection>
        <BasePath>/getstarted</BasePath>
        <Properties/>
        <VirtualHost>default</VirtualHost>
        <VirtualHost>secure</VirtualHost>
      </HTTPProxyConnection>
      <RouteRule name="default">
        <TargetEndpoint>default</TargetEndpoint>
      </RouteRule>
    </ProxyEndpoint>
  5. Proxy'nize politika eklemek için yanıt PreFlow'da (akış düzenleyicinin alt yarısı) + Adım düğmesini tıklayın:

    Edge, akışınıza ekleyebileceğiniz politikaların kategorilere ayrılmış bir listesini Ekle iletişim kutusunda gösterir:

  6. Aşağı kaydırın ve Aracılık kategorisinde XML to JSON politikasını seçin.
  7. Varsayılan adları değiştirmeden Ekle'yi tıklayın.

    Edge, yeni politikayı yanıtın PreFlow'una ekler:

    Ekle'yi tıkladığınızda Edge'in aşağıdakileri yaptığını unutmayın:

    • Yeni politika, Gezgin bölmesindeki Politikalar bölümüne eklenir.
    • Akış bölmesine XML'den JSON'a dönüştürme politikasını ekler.
    • Politikanın yapılandırma XML'sini Kod bölmesinde gösterir.
  8. Mevcut düzeltmeyi değişikliklerinizle birlikte kaydetmek için Kaydet'i tıklayın.

Hemen deneyin. Bir terminal penceresinde aşağıdaki curl komutunu çalıştırın:

curl https://org_name-test.apigee.net/getstarted

Burada:

Alternatif olarak, aynı URL'yi bir tarayıcıda açabilirsiniz.

Aşağıdaki yanıtı alırsınız:

{
  "root": {
    "city": "San Jose",
    "firstName": "John",
    "lastName": "Doe",
    "state": "CA"
  }
}

Yanıtın gövdesi bu şekilde görünmüyorsa şunları kontrol edin:

  1. Hedef uç noktanız, 3. adım: Hedef uç noktanızı değiştirin bölümünde açıklandığı gibi "https://mocktarget.apigee.net/xml"dir: 3. adım: Hedef uç noktanızı değiştirin:
    • Yanıt olarak "Merhaba, Misafir!" mesajını alırsanız hedef uç noktanın sonuna "/xml" eklemeniz gerekir.
    • 404 hatası alırsanız "apigee.com" yerine "apigee.net"e eriştiğinizden emin olun.
  2. Proxy'nizin en son düzeltmesi dağıtılır. API proxy'nizi API proxy'si dağıtma ve dağıtımı kaldırma bölümünde açıklandığı şekilde yeniden dağıtmayı deneyin.

HTTP isteği ve yanıt başlıklarını görmek için curl'da -vs seçeneğiyle ayrıntı düzeyini etkinleştirin (v yanıtı ayrıntılı hale getirir ancak s daha az ilgi çekici ayrıntıların bir kısmını gizler). Örneğin:

curl -vs https://ahamilton-eval-test.apigee.net/getstarted | python -m json.tool

Aşağıdakine benzer bir yanıt alırsınız. Yanıtın Content-Type üstbilgisinin "application/json" olduğunu unutmayın. XML'den JSON'a politikası, yanıtı geri göndermeden önce başlığı değiştirir.

*   Trying 10.20.30.40...
* TCP_NODELAY set
* Connected to ahamilton-eval-test.apigee.net (10.20.30.40) port 443 (#0)
...
> GET /getstarted HTTP/1.1
> Host: ahamilton-eval-test.apigee.net
> User-Agent: curl/7.58.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Fri, 25 May 2018 16:20:00 GMT
< Content-Type: application/json;charset=UTF-8
< Content-Length: 77
< Connection: keep-alive
< X-Powered-By: Apigee
< Access-Control-Allow-Origin: *
...
{ [77 bytes data]
{
  "root": {
    "city": "San Jose",
    "firstName": "John",
    "lastName": "Doe",
    "state": "CA"
  }
}

Sonraki adım

Daha ayrıntılı bilgi