Passaggio 5: aggiunta di un criterio

Questa pagina si applica a Apigee e Apigee ibridi.

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

In questo tutorial, aggiungerai il criterio XMLtoJSON al tuo proxy. Queste norme converte il payload di un messaggio XML in JSON. Cambia inoltre le risposte Intestazione Content-Type.

Puoi collegare un criterio a un flusso nel proxy. I flussi controllano il modo in cui i criteri vengono eseguito. 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 API di controllo proxy con 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 Sviluppa > Proxy API e, nel riquadro Proxy, seleziona l'ambiente per il proxy.

  2. Dall'elenco di 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 dei criteri disponibili in base a 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 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 scoprire di più sulle norme, 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 di norme per visualizzarne le informazioni e sapere come utilizzarlo. Consulta Utilizzare il codice di Gemini Code Assist con i criteri per informazioni.

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 della norma:

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

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

    Vedi 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 nella PreFlow:

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

    Seleziona gli endpoint di destinazione per PreFlow in Proxy Explorer.

    Nota: potrebbe essere necessario espandere l'editor visivo nel riquadro a destra per vedere tutte le elementi. Per farlo, fai clic e trascina il divisore tra l'editor visivo e l'editor di testo un po' meno.

  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. tra 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 di Proxy Editor.

    Apigee visualizza l'editor proxy API.

  4. Nel riquadro Navigatore, fai clic su Endpoint proxy > predefinita > PreFlow:

    Apigee visualizza l'editor dei flussi:

    Editor del flusso.

    Inoltre, Apigee visualizza la configurazione predefinita degli endpoint proxy 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 in la risposta PreFlow (la metà inferiore dell'editor Flow):

    + Step nel PreFlow di risposta.

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

    Elenco dei criteri.

  6. Scorri verso il basso e seleziona la norma XMLtoJSON nella sezione Mediazione categoria.
  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 Norme nel Navigator riquadro.
    • 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 Trova il nome host del gruppo di ambienti.

Vedi Chiama il proxy API per ulteriori informazioni.

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 in Passaggio 4: modifica l'endpoint di destinazione:
    • Se ricevi Hello, Guest! in risposta, devi aggiungere /xml alla fine dell'endpoint di destinazione.
    • Se ricevi un 404, verifica di accedere apigee.net e non 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 Proxy API e Annullamento del deployment di Proxy API.

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