Passaggio 5: aggiunta di un criterio

Questa pagina si applica ad Apigee e Apigee hybrid.

Visualizza la documentazione di Apigee Edge.

Ora che hai modificato l'endpoint di destinazione, puoi aggiungere un criterio al proxy.

Un criterio è un componente Apigee che puoi collegare a diversi punti del flusso dei messaggi tramite i proxy API. I criteri possono trasformare i formati dei messaggi, applicare controllo dell'accesso, chiamare servizi remoti, autorizzare gli utenti, esaminare i contenuti dei messaggi alla ricerca di potenziali minacce e molto altro ancora.

In questo tutorial imparerai ad aggiungere il criterio XMLtoJSON al tuo proxy. Questo criterio converte il payload di un messaggio XML in formato JSON. Cambia anche l'intestazione Content-Type della risposta.

Puoi collegare un criterio a un flusso nel proxy. I flussi controllano il modo in cui vengono eseguiti i criteri. In questo esempio, aggiungerai il criterio a un flusso speciale chiamato PreFlow. I criteri nel PreFlow vengono eseguiti prima di qualsiasi altro criterio nel proxy. Anche se non è necessario comprendere in dettaglio i flussi per leggere questo esempio, puoi scoprire di più al riguardo in Controllo dei proxy API con i flussi.

Nuovo editor proxy

Per aggiungere il criterio XMLtoJSON al proxy devi completare due passaggi:

Crea un'istanza del criterio

Per utilizzare un criterio, devi prima creare una nuova istanza del criterio a partire dal relativo modello, come indicato di seguito:

  1. Se utilizzi l'interfaccia utente di Apigee nella console Cloud: seleziona Sviluppo proxy > Proxy API.

    Se utilizzi l'interfaccia utente di Apigee classica: seleziona Sviluppo > Proxy API e, nel riquadro proxy, seleziona l'ambiente per il proxy.

  2. Dall'elenco dei proxy, seleziona il proxy a cui vuoi aggiungere il criterio.
  3. Fai clic sulla scheda Sviluppo.

  4. Nel riquadro a sinistra, fai clic sul pulsante + accanto alla cartella Policies (Norme).
  5. Nella finestra di dialogo Crea criterio, seleziona Norme standard per filtrare l'elenco dei criteri disponibili per tipo di norma.
  6. Nella casella di testo Seleziona il tipo di criterio, scorri verso il basso fino a Mediazione e seleziona XML To JSON.

  7. Se vuoi, puoi modificare il nome e il nome visualizzato del criterio. Per impostazione predefinita, Apigee fornisce un breve prefisso per il nome del criterio; in questo caso, X2J-. Puoi aggiungere una sequenza di parole descrittive separate da trattini, dopo il prefisso. Consulta la pagina Convenzioni di denominazione.

    Finestra di dialogo Crea criterio.

    Al termine, fai clic su Crea per creare il criterio.

Il criterio da XML a JSON viene ora mostrato nel riquadro di destra della visualizzazione Sviluppo:

Criterio da XML a JSON mostrato nella visualizzazione Sviluppo.

Nella metà inferiore del riquadro è visualizzato il codice XML del criterio.

Per saperne di più sul criterio, seleziona l'icona delle informazioni Icona Informazioni. accanto al nome del criterio e fai clic su Criterio da XML a JSON. Viene visualizzata la pagina di riferimento per la norma.

Modifica il nome del criterio

Per modificare il nome di una norma:

  1. Seleziona la norma in Norme nel riquadro a sinistra.
  2. Nell'elemento <DisplayName> del codice XML del criterio, aggiungi una frase descrittiva, ad esempio change-xml-to-json, dopo l'abbreviazione del nome della norma:

    Aggiungi change-xml-to-json al nome del criterio.

    In questo modo, il nome del criterio viene aggiornato automaticamente, visualizzato nella sezione Norme.

    Consulta la sezione Convenzioni di denominazione.

Associa il criterio a un passaggio di PreFlow

Ora che hai creato il criterio XML To JSON, puoi collegarlo a un passaggio nel PreFlow:

  1. Seleziona Endpoint del proxy > predefinito > PreFlow nel riquadro a sinistra:

    Endpoint di destinazione per la selezione PreFlow in Proxy Explorer.

    Nota: per visualizzare tutti gli elementi potrebbe essere necessario espandere l'editor visivo nel riquadro a destra. Per farlo, fai clic e trascina leggermente verso il basso il divisore tra l'editor visivo e l'editor di testo.

  2. Fai clic sul pulsante + accanto a PreFlow nel riquadro PreFlow in basso a destra nell'editor visivo:

    Fai clic sul pulsante + accanto a PreFlow nel riquadro Risposta.

  3. Nella finestra di dialogo Aggiungi passaggio del criterio, seleziona il criterio X2J-change-xml-to-json.
  4. Fai clic su Aggiungi per allegare il criterio.

    Il criterio X2J-change-xml-to-json è ora visualizzato nel riquadro Risposta:

    Criterio da XML a JSON visualizzato nel riquadro Risposta.

  5. Fai clic su Salva per salvare la revisione corrente con le modifiche.
  6. Per eseguire il deployment delle modifiche alla revisione, fai clic su Esegui il deployment e segui le istruzioni riportate in Eseguire il deployment di un proxy API.

Editor proxy classico

Per aggiungere il criterio XMLtoJSON al tuo proxy:

  1. Apri l'UI di Apigee in un browser e accedi.
  2. Fai clic su proxy API nella finestra principale e seleziona un proxy. Per questo esempio, seleziona il proxy che hai creato nel Passaggio 2: crea un proxy API.
  3. Fai clic sulla scheda Sviluppo:

    Fai clic sulla scheda Sviluppo nell&#39;editor proxy.

    Apigee visualizza l'editor proxy API.

  4. Nel riquadro Navigazione, fai clic su Endpoint del proxy > predefinito > PreFlow:

    Apigee visualizza l'editor Flow:

    Editor flusso.

    Inoltre, Apigee mostra la configurazione predefinita dell'endpoint proxy nel riquadro Codice:

    <?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>/myproxy</BasePath>
        <Properties/>
        <VirtualHost>default</VirtualHost>
        <VirtualHost>secure</VirtualHost>
      </HTTPProxyConnection>
      <RouteRule name="default">
        <TargetEndpoint>default</TargetEndpoint>
      </RouteRule>
    </ProxyEndpoint>
  5. Per aggiungere un criterio al proxy, fai clic sul pulsante + Passaggio nel PreFlow di risposta (la metà inferiore dell'editor Flow):

    + Pulsante Step nel PreFlow di risposta.

    Apigee mostra un elenco categorizzato di criteri nella finestra di dialogo Aggiungi che puoi aggiungere al tuo flusso:

    Elenco dei criteri.

  6. Scorri verso il basso e seleziona la norma XMLtoJSON nella categoria Mediazione.
  7. Lascia i nomi predefiniti e fai clic su Aggiungi.

    Apigee collega il nuovo criterio al PreFlow della risposta:

    Nuovo criterio allegato al pre-flusso della risposta.

    Tieni presente che, quando fai clic su Aggiungi, Apigee procede nel seguente modo:

    • Aggiunge il nuovo criterio in Norme nel riquadro Navigazione.
    • Aggiunge il criterio XMLtoJSON nel riquadro Flusso.
    • Visualizza il codice XML di configurazione del criterio nel riquadro Codice.
  8. Fai clic su Salva per salvare la revisione corrente con le modifiche.
  9. Per eseguire il deployment delle modifiche, fai clic sulla scheda Panoramica e poi sul pulsante Esegui il deployment.

Testa il nuovo criterio

Per testare il nuovo criterio, esegui questo comando curl in una finestra del terminale:

curl https://YOUR_ENV_GROUP_HOSTNAME/myproxy

dove YOUR ENV_GROUP_HOSTNAME è il nome host del gruppo di ambienti. Vedi Trovare il nome host del gruppo di ambienti.

Per maggiori informazioni, consulta Chiamare il proxy API.

In alternativa, puoi aprire lo stesso URL in un browser.

Dovresti ricevere la seguente risposta:

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

Se il corpo della risposta non ha il seguente aspetto, verifica che:

  1. L'endpoint di destinazione è https://mocktarget.apigee.net/xml, come descritto in Passaggio 4: modifica l'endpoint di destinazione:
    • Se ricevi Hello, Guest! come risposta, devi aggiungere /xml alla fine dell'endpoint di destinazione.
    • Se ricevi un 404, verifica di accedere a apigee.net e non a apigee.com.
  2. È stato eseguito il deployment dell'ultima revisione del proxy. Prova a eseguire nuovamente il deployment del proxy API come descritto in Eseguire il deployment di un proxy API e Annullare il deployment di un proxy API.

Per visualizzare le intestazioni delle richieste e delle risposte HTTP, attiva le Preferenze di lettura in curl con l'opzione -vs (v rende la risposta dettagliata, ma s elimina alcuni dettagli meno interessanti). L'esempio seguente presuppone che il proxy sia denominato myproxy:

curl -vs https://YOUR_ENV_GROUP_HOSTNAME/myproxy  | python -m json.tool

Dovresti ricevere una risposta simile alla seguente. Tieni presente che l'intestazione Content-Type nella risposta è application/json. Il criterio XMLtoJSON modifica l'intestazione prima di inviare la risposta.

*   Trying 10.20.30.40...
* TCP_NODELAY set
* Connected to apitest.acme.com (10.20.30.40) port 443 (#0)
...
> GET /myproxy HTTP/1.1
> Host: apitest.acme.com
> 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"
  }
}

Passaggio successivo

Approfondisci