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 flusso di messaggi tramite i proxy API. I criteri possono trasformare i formati dei messaggi, applicare in modo forzato 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 proxy. Queste norme
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 l'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. 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 proxy sono necessari 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:
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.
- Dall'elenco di proxy, seleziona il proxy a cui vuoi aggiungere il criterio.
Fai clic sulla scheda Sviluppo.
- Nel riquadro a sinistra, fai clic sul pulsante + accanto alla cartella Criteri.
- Nella finestra di dialogo Crea norma, seleziona Norme standard per filtrare l'elenco delle norme disponibili in base al tipo di norma.
- Nella casella di testo Seleziona il tipo di criterio, scorri verso il basso fino a Mediazione e seleziona XML to JSON.
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.
Al termine, fai clic su Crea per creare il criterio.
Il criterio da XML a JSON viene ora mostrato nel riquadro a destra della 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 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 visualizzare informazioni su quell'elemento e su come utilizzarlo. Per informazioni, consulta Utilizzare il codice di Gemini Code Assist con le norme.
Modificare il nome del criterio
Per modificare il nome di una norma:
- Seleziona il criterio in Norme nel riquadro a sinistra.
- 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:
Il nome del criterio viene aggiornato automaticamente e visualizzato in Criteri.
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:
- Seleziona Endpoint proxy > predefinito > PreFlow nel riquadro di sinistra:
Nota: per visualizzare tutti gli elementi, potresti dover espandere l'editor visivo nel riquadro a destra. A questo scopo, fai clic e trascina il divisore tra l'editor visivo e l'editor di testo un po' meno.
- Fai clic sul pulsante + accanto a PreFlow nel riquadro Risposta in basso a destra nell'editor visivo:
- Nella finestra di dialogo Aggiungi passaggio criterio, seleziona il criterio X2J-change-xml-to-json.
Fai clic su Aggiungi per allegare le norme.
Il criterio X2J-change-xml-to-json viene ora visualizzato nel riquadro Risposta:
- Fai clic su Salva per salvare la revisione corrente con le modifiche.
- 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 tuo proxy:
- Apri l'interfaccia utente di Apigee in un browser e accedi.
- 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.
Fai clic sulla scheda Sviluppo:
Apigee visualizza l'editor proxy API.
Nel riquadro Navigator, fai clic su Endpoint proxy > predefinito > PreFlow:
Apigee visualizza l'editor dei flussi:
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>
- Per aggiungere un criterio al proxy, fai clic sul pulsante + Passaggio nel PreFlow della risposta (la metà inferiore dell'editor di flusso):
Nella finestra di dialogo Aggiungi, Apigee mostra un elenco classificato dei criteri che puoi aggiungere al flusso:
- Scorri verso il basso e seleziona la norma XMLtoJSON nella sezione Mediazione categoria.
Lascia invariati i nomi predefiniti e fai clic su Aggiungi.
Apigee collega il nuovo criterio al PreFlow 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.
- Mostra il codice XML di configurazione del criterio nel riquadro Codice.
- Fai clic su Salva per salvare la revisione corrente con le modifiche.
- 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 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 è simile a questo, controlla che:
- L'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 accedereapigee.net
e nonapigee.com
.
- Se ricevi
- È stata implementata la versione più recente 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 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). 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" } }