Passaggio 5: aggiunta di un criterio

Questa pagina si applica a Apigee e Apigee ibrido.

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 di messaggi attraverso i proxy API. I criteri possono trasformare i formati dei messaggi, applicare controllo dell'accesso, chiamare i servizi remoti, autorizzare gli utenti, esaminare i contenuti dei messaggi per individuare potenziali minacce e molto altro ancora.

In questo tutorial, aggiungerai il criterio XMLtoJSON al tuo proxy. Questo criterio converte il payload di un messaggio XML in JSON. Modifica 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. Sebbene non sia necessario comprendere i flussi in dettaglio 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 tuo proxy, sono previsti due passaggi:

Crea un'istanza del criterio

Per utilizzare un criterio, devi prima creare una nuova istanza del criterio dal modello del criterio, come segue:

  1. Se utilizzi la UI di Apigee nella console Cloud: seleziona Sviluppo proxy > Proxy API.

    Se utilizzi la UI 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 Criteri.
  5. Nella finestra di dialogo Crea criterio, seleziona Criteri standard per filtrare l'elenco di criteri disponibili per tipo di criterio.
  6. Nella casella di testo Seleziona il tipo di criterio, scorri verso il basso fino a Mediazione e seleziona Da XML a 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 le convenzioni di denominazione.

    Finestra di dialogo Crea criterio.

    Quando hai finito, fai clic su Crea per creare la norma.

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

Criterio da XML a JSON visualizzato nella visualizzazione Sviluppo.

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

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

Utilizza Gemini Code Assist per rivedere le istruzioni dei criteri

Se disponi del componente aggiuntivo Gemini Code Assist, puoi evidenziare un elemento dei criteri per visualizzare informazioni su quell'elemento e come utilizzarlo. Per informazioni, consulta Utilizzare il codice di Gemini Code Assist con i criteri.

Modificare il nome del criterio

Per modificare il nome di una norma:

  1. Seleziona il criterio nella sezione Criteri del riquadro a sinistra.
  2. Nell'elemento <DisplayName> del codice XML del criterio, aggiungi una frase descrittiva per il criterio, ad esempio change-xml-to-json, dopo l'abbreviazione del nome del criterio:

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

    In questo modo il nome del criterio viene aggiornato automaticamente, visualizzato in Criteri.

    Consulta le convenzioni di denominazione.

Collega il criterio a un passaggio del PreFlow

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

  1. Seleziona Proxy Endpoints > default > PreFlow nel riquadro a sinistra:

    Seleziona gli endpoint di destinazione per PreFlow in Proxy Explorer.

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

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

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

  3. Nella finestra di dialogo Aggiungi passaggio 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 viene 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 in 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 di Proxy Editor.

    Apigee visualizza l'editor proxy API.

  4. Nel riquadro Navigator, fai clic su Proxy Endpoints > predefiniti > PreFlow:

    Apigee visualizza l'editor dei flussi:

    Editor del flusso.

    Inoltre, Apigee visualizza la configurazione predefinita degli 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 + Step nella risposta PreFlow (la metà inferiore dell'editor del flusso):

    + Step nel PreFlow di risposta.

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

    Elenco dei criteri.

  6. Scorri verso il basso e seleziona il criterio 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 collegato nel pre-flusso della risposta.

    Tieni presente che quando fai clic su Aggiungi, Apigee esegue le seguenti operazioni:

    • Aggiunge il nuovo criterio in Criteri nel riquadro Navigator.
    • Aggiunge il criterio XMLtoJSON nel riquadro Flow.
    • 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. Consulta Trovare il nome host del gruppo di ambienti.

Per ulteriori informazioni, consulta la pagina 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 è simile a questo, controlla che:

  1. Il tuo endpoint di destinazione è https://mocktarget.apigee.net/xml, come descritto nel 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 Deployment di un proxy API e Annullamento del deployment di un proxy API.

Per visualizzare le intestazioni della richiesta e della risposta HTTP, attiva il livello di dettaglio in curl con l'opzione -vs (v rende la risposta dettagliata, ma s elimina alcuni dei dettagli meno interessanti). Nell'esempio seguente si 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

Approfondimenti