Creación de una API de proxy GraphQL
GraphQL es un lenguaje de consulta para APIs que proporciona al cliente de aplicaciones un mayor control sobre los datos que recupera en una solicitud de API en comparación con una solicitud de API REST. IBM® API Connect le permite crear una definición de proxy de API de GraphQL que actúa como proxy de un servidor GraphQL de fondo y definir controles de limitación de velocidad que reflejen la cantidad de datos que devuelve el servidor una solicitud a la API GraphQL .
Acerca de esta tarea
Puede completar esta tarea utilizando la aplicación de interfaz de usuario de API Designer o utilizando la interfaz de usuario de API Manager basada en navegador.
Para realizar esta tarea, debe tener asignado un rol que tenga los permisos
Api-Drafts:Edit, Settings:View y App:View. El rol de desarrollador presuministrado tiene estos permisos de forma predeterminada; si se le asigna un rol personalizado,
debe tener estos permisos. Para obtener más información, consulte Creación de roles personalizados.
GraphQL proporciona las siguientes ventajas sobre las API REST:
- El cliente de aplicaciones sólo puede solicitar los datos que necesita. Por ejemplo, al recuperar registros de cuentas bancarias, solicite sólo el número de cuenta y el saldo actual para cada cuenta, pero no los detalles de nombre de cliente y dirección. Con una solicitud de API REST, el servicio REST de fondo debe proporcionar puntos finales separados para diferentes subconjuntos de datos, o el cliente de aplicaciones debe recuperar los registros completos y, a continuación, descartar los datos no deseados.
- El cliente de aplicaciones puede recuperar varios recursos relacionados en una única solicitud. Por ejemplo, el registro de cuenta bancaria de un cliente podría incluir una matriz que hiciera referencia a otros productos financieros del cliente. Si un cliente de aplicaciones desea recuperar los detalles de cuenta bancaria para un cliente específico y detalles de los otros productos financieros para dicho cliente, con una API REST el cliente recuperaría primero los detalles de la cuenta bancaria y, a continuación, efectuaría solicitudes separadas para cada uno de los demás productos. Se puede diseñar una API GraphQL para permitir que el cliente recupere toda esta información en una única solicitud.
Sin embargo, esta flexibilidad presenta desafíos de limitación de velocidad, porque dos solicitudes aparentemente muy similares podrían devolver cantidades muy diferentes de datos, y lo que podría haber requerido varias solicitudes de API REST, cada una de ellas contabilizada con respecto al límite de velocidad, podría requerir sólo una única solicitud de API GraphQL. Por tanto, es importante que se impongan controles de limitación de velocidad que reflejen la cantidad de datos que se recuperan. API Connect amplía el estándar GraphQL proporcionando, en una definición de API GraphQL , la capacidad de configurar un rango de valores que se utilizan para calcular la complejidad de una solicitud GraphQL y un coste asociado que cuenta para el límite de velocidad.
Procedimiento
Para crear una definición de proxy de API GraphQL, siga estos pasos: