Usa un proxy para un servicio de SOAP

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

Qué aprenderás

En este instructivo, aprenderás a realizar lo siguiente:

  • Genera un proxy de la API de Edge a partir de un archivo WSDL.
  • Conoce la diferencia entre un tipo de proxy de SOAP RESTful y un proxy de SOAP de paso.

En este instructivo, aprenderás a colocar un proxy de API de Edge frente a un servicio web basado en SOAP.

En este instructivo, se ilustra cómo generar una nueva API de RESTful frente a tu servicio basado en SOAP. Aunque no se describe en detalle aquí, también puedes generar un proxy de paso que acepte una carga útil de SOAP y la pase al servicio de backend.

Requisitos

Crea el proxy

Aquí, harás que Edge genere el proxy que se ubicará frente a un servicio de SOAP. Existen dos tipos de proxies de API de SOAP:

  • El tipo de proxy REST-SOAP-REST genera una nueva API de RESTful con una capa de traducción a SOAP. Los clientes lo llaman como lo harían con otros servicios RESTful y pasan los parámetros de consulta que necesita el servicio de backend. Edge lo traduce en la carga útil de SOAP que espera el servicio.
  • El tipo de proxy de proxy de paso permite que los clientes simplemente pasen una carga útil de SOAP. Esta es una forma de que las llamadas al servicio de SOAP se beneficien de las funciones de administración perimetral.

Conexión de integración

Para usar un proxy de un servicio de SOAP con la IU de Edge, sigue estos pasos:

  1. Accede a apigee.com/edge.
  2. Selecciona Desarrollar > Proxies de API en la barra de navegación izquierda.
  3. Haz clic en +Proxy.
  4. Haz clic en Servicio SOAP.
  5. En la página Detalles del proxy, ingresa lo siguiente:

    Campo Descripción
    Fuente de WSDL

    Selecciona: URL

    Copia y pega la siguiente URL de WSLD en el campo Enter URL:

    https://ws.cdyne.com/delayedstockquote/delayedstockquote.asmx?wsdl

    Haz clic en Validate.

    Apigee Edge obtiene el archivo WSDL y lo lee para descubrir la lista de operaciones que admite el servicio de SOAP.

    Nombre

    Dejar como está: delayedstockquote

    Este es el nombre del proxy de API que crearás.

    Ruta base Dejar como está: /delayedstockquote
    Descripción De forma opcional, agrega una descripción, por ejemplo: Proxy de API de WSDL de cotización de acciones
  6. Presiona Siguiente.
  7. En la página Políticas comunes, en Seguridad: autorización, selecciona Transferencia (sin autorización).
  8. Presiona Siguiente.
  9. En la página Operaciones de WSDL, selecciona: REST a SOAP a REST.

    Una vez que selecciones el tipo de proxy, Edge mostrará la lista de operaciones para las que generará rutas de acceso a la API de REST. Esta lista te permite seleccionar entre las operaciones encontradas en el WSDL (en caso de que tengas un conjunto en particular que estés buscando). Ten en cuenta que en la tabla también se muestran los recursos que un cliente REST puede usar para llamar al servicio de SOAP de backend.

    Deja todas las demás selecciones en la página tal como están.

  10. Presiona Siguiente.
  11. Haz clic en Siguiente para aceptar los valores predeterminados del host virtual.
  12. En la página Summary, en Optional Deployment, haz clic en Test y, luego, en Create and deploy.

    Edge genera un proxy de API de RESTful y lo implementa en el entorno test. A partir del WSDL, determina las operaciones admitidas del servicio, los parámetros de entrada, etcétera. Edge sugiere qué método HTTP usar para cada operación. Por lo general, Edge traduce las operaciones en solicitudes GET, que tienen la ventaja de que se pueden almacenar en caché. Edge también configura el extremo de destino del backend, que puede variar según la operación de SOAP.

    A menos que personalices el nuevo proxy de API (y no estés en este instructivo), eso es todo. Puedes pasar a probar el nuevo proxy de API.

Versión clásica de Edge (nube privada)

Para usar un proxy de un servicio de SOAP con la IU de Edge clásica, sigue estos pasos:

  1. Accede a http://ms-ip:9000, donde ms-ip es la dirección IP o el nombre de DNS del nodo del servidor de administración.
  2. Selecciona API > Proxies de API en la barra de navegación superior.
  3. Haz clic en + API Proxy.
  4. Haz clic en Servicio SOAP.
  5. En la página Detalles del proxy, ingresa lo siguiente:

    Campo Descripción
    WSDL

    Selecciona: URL de ejemplo.

    Luego, selecciona lo siguiente:
    ...delayedstockQuote.asmx?WSDL

    Haz clic en Validate.

    Apigee Edge obtiene el archivo WSDL y lo lee para descubrir la lista de operaciones que admite el servicio de SOAP.

    Proxy name

    Ingresa: delayedstockquote

    Este es el nombre del proxy que estás creando.

    Ruta de acceso base del proxy y descripción Déjalo así.
  6. Presiona Siguiente.
  7. En la página de WSDL, realiza las siguientes selecciones:
    En este campo haz lo siguiente Sigue estas recomendaciones
    Tipo de proxy de la API

    Selecciona: REST a SOAP a REST

    Una vez que selecciones el tipo de proxy, Edge mostrará la lista de operaciones para las que generará rutas de acceso a la API de REST, como se muestra aquí. Esta lista te brinda la oportunidad de seleccionar entre las operaciones que se encuentran en el WSDL (en caso de que tengas un conjunto en particular que estés buscando). Ten en cuenta que en la tabla también se muestran los recursos que un cliente REST puede usar para llamar al servicio de SOAP de backend.

    Por ahora, solo deja seleccionado el primer conjunto de operaciones.

    Tipo de puerto: DelayedStockQuoteSoap Selecciona las tres operaciones de WSDL. Deja el resto de la configuración como está.

  8. Presiona Siguiente.
  9. En la página Seguridad, selecciona Transferencia (ninguna).
  10. Presiona Siguiente.
  11. Acepte los valores predeterminados del host virtual y haga clic en Siguiente.
  12. En la página Compilación, acepta los valores predeterminados y haz clic en Compilar e implementar para que Edge comience a generar el proxy.

    Edge genera un proxy de API de RESTful. A partir del WSDL, determina las operaciones admitidas del servicio, los parámetros de entrada, etcétera. Edge sugiere qué método HTTP usar para cada operación. Por lo general, Edge traduce las operaciones en solicitudes GET, que tienen la ventaja de que se pueden almacenar en caché. Edge también configura el extremo de destino del backend, que puede variar según la operación de SOAP.

    A menos que personalices el proxy nuevo (y no estés en este instructivo), no hay nada más que hacer. Puedes continuar con la prueba del proxy nuevo.

Prueba el proxy

Para probar el proxy que creaste, abre el símbolo del sistema y usa cURL. Escribe el siguiente comando, donde:

  • ORG es el nombre de la organización de Edge en la que creaste el proxy.
  • ENV es el entorno en el que se implementa el proxy.
  • “DOMAIN” corresponde a la instancia de Edge que estás usando.
curl "https://{ORG}-{ENV}.{DOMAIN}/delayedstockquote/quote?StockSymbol=GOOG&LicenseKey=0"

Por ejemplo, si la organización es docfood, el entorno es test y usas la nube empresarial Edge, deberías ejecutar un comando como el siguiente:

curl "https://docfood-test.apigee.net/delayedstockquote/quote?StockSymbol=GOOG&LicenseKey=0"

Si ingresaste GOOG para el parámetro de consulta StockSymbol, deberías obtener el precio actual de las acciones de Alphabet Inc. Class C. Por ejemplo:

{  
   "GetQuoteResponse":{  
      "GetQuoteResult":{  
         "StockSymbol":"GOOG",
         "LastTradeAmount":819.55,
         "LastTradeDateTime":"2017-02-13T14:33:00",
         "StockChange":5.88,
         "OpenAmount":816.0,
         "DayHigh":820.96,
         "DayLow":815.49,
         "StockVolume":785064,
         "PrevCls":813.67,
         "ChangePercent":"+0.72%",
         "FiftyTwoWeekRange":"663.28 - 841.95",
         "EarnPerShare":27.88,
         "PE":29.4,
         "CompanyName":"Alphabet Inc.",
         "QuoteError":false
      }
   }
}

Obtén la especificación de OpenAPI generada automáticamente

Cuando usas un proxy de un servicio de SOAP con “REST a SOAP a REST”, Edge genera automáticamente una Especificación de OpenAPI. Puedes usar la especificación de OpenAPI para generar documentación de la API.

Para obtener las especificaciones de OpenAPI, solo visita esta URL:

curl https://{ORG}-{ENV}.{DOMAIN}/delayedstockquote/openapi.json

Crédito adicional: ¿Cómo descubres qué recurso, verbo y parámetros de consulta usar?

En la llamada a la API de prueba, usaste un recurso y parámetros de consulta específicos en la llamada cURL al servicio de SOAP de backend. Pero ¿cómo lo encontrarías por tu cuenta?

Recurso y verbo

En el asistente del proxy de la API, cuando creaste el proxy, viste cómo las operaciones de SOAP se asignarían a los verbos y recursos de la API. Sin embargo, si no los hubieras anotado, lo sabrías de esta manera una vez que se haya creado el proxy.

En la pestaña Develop del proxy de la API, en el panel de navegación izquierdo, verás una lista de flujos en los extremos del proxy. Haz clic en el flujo que te interesa. Por ejemplo, el flujo GetQuote es un buen candidato. Luego, observa el XML en el panel Code, que muestra la ruta de acceso del recurso y el verbo del flujo en el elemento <Condition>: /quote y GET.

Parámetros de consulta

Con el flujo GetQuote seleccionado, haz clic en la primera política en la vista de flujo gráfico. Debe ser una política de extracción de variables que capture los parámetros de consulta que se espera que se pasen: StockSymbol y LicenseKey. (Si realizas una búsqueda web del servicio SOAP, se te indicará qué pasar por LicenseKey).

Los parámetros de consulta capturados se guardan como variables y los usa la siguiente política para construir el mensaje SOAP.