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 di 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 per rilevare potenziali minacce e molto altro ancora.

In questo tutorial aggiungerai il criterio XMLtoJSON al proxy. Questo criterio converte il payload di un messaggio XML in JSON. Modifica anche l'intestazione Content-Type della risposta.

Puoi associare un criterio a un flusso nel proxy. I flussi controllano la modalità di esecuzione dei criteri. In questo esempio, aggiungerai il criterio a un flusso speciale chiamato PreFlow. I criteri in PreFlow vengono eseguiti prima di qualsiasi altro criterio nel proxy. Anche se non è necessario comprendere i flussi in dettaglio per leggere questo esempio, puoi scoprire di più su di essi in Controllo dei proxy API con i flussi.

Nuovo editor proxy

Per aggiungere il criterio XMLtoJSON al proxy sono necessari due passaggi:

Crea un'istanza del criterio

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

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

    Se utilizzi la UI di Apigee classica: seleziona Sviluppa > Proxy API e nel riquadro Proxy, seleziona l'ambiente per il proxy.

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

  4. Nel riquadro a sinistra, fai clic sul pulsante + accanto alla cartella Criteri.
  5. Nella finestra di dialogo Crea norma, seleziona Norme standard per filtrare l'elenco delle norme disponibili in base al tipo di norma.
  6. Nella casella di testo Seleziona il tipo di criteri, 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-. Dopo il prefisso, puoi aggiungere una sequenza di parole descrittive separate da trattini. Consulta Convenzioni di denominazione.

    Finestra di dialogo Crea criterio.

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

Il criterio XML to JSON viene ora visualizzato nel riquadro a destra della visualizzazione Sviluppa:

Criterio XML to JSON visualizzato nella visualizzazione Sviluppa.

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

Per scoprire di più sul criterio, seleziona l'icona informativa accanto al nome del criterio e fai clic su Criterio XML to JSON.Icona Informazioni. Viene visualizzata la pagina di riferimento delle norme.

Usare Gemini Code Assist per esaminare le istruzioni relative alle norme

Se hai il componente aggiuntivo Gemini Code Assist, puoi evidenziare un elemento delle norme per visualizzare informazioni su quell'elemento e su come utilizzarlo. Per informazioni, consulta Utilizzare il codice di Gemini Code Assist con le norme.

Modifica il nome del criterio

Per modificare il nome di un criterio:

  1. Seleziona il criterio in Norme nel riquadro a sinistra.
  2. Nell'elemento <DisplayName> nel 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.

    Il nome della norma viene aggiornato automaticamente e visualizzato in Norme.

    Consulta 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 Endpoint proxy > predefinito > PreFlow nel riquadro di sinistra:

    Endpoint di destinazione per PreFlow selezionati in Esplora proxy.

    Nota: per visualizzare tutti gli elementi, potresti dover espandere l'editor visivo nel riquadro a destra. A tale scopo, fai clic e trascina leggermente verso il basso la barra di divisione 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 di criteri, seleziona la norma 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 XML to 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 Esegui il deployment di un proxy API.

Editor proxy classico

Per aggiungere il criterio XMLtoJSON al proxy:

  1. Apri l'interfaccia utente 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 Sviluppa:

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

    Apigee mostra l'editor proxy API.

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

    Apigee mostra l'editor di flussi:

    Editor di flussi.

    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 della risposta (la metà inferiore dell'editor di flusso):

    Pulsante Passaggio + nel PreFlow della risposta.

    Nella finestra di dialogo Aggiungi, Apigee mostra un elenco classificato dei criteri che puoi aggiungere al flusso:

    Elenco delle norme.

  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 la nuova norma al PreFlow della risposta:

    Nuovo criterio allegato nel preflow della risposta.

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

    • Aggiunge la nuova norma in Norme nel riquadro Navigator.
    • Aggiunge il criterio XMLtoJSON nel riquadro Flusso.
    • Mostra 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 la nuova norma

Per testare il nuovo criterio, esegui il seguente 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 Chiama 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 questo 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 apigee.net e non a apigee.com.
  2. È stata implementata la versione più recente 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 di richiesta e risposta HTTP, attiva la modalità dettagliata in curl con l'opzione -vs (v rende la risposta dettagliata, ma s elimina alcuni dei 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

Approfondimenti