Skip to Content
Asistentes de configuraciónDescubrimiento por URL

Descubrimiento por URL

Este asistente parte de la dirección de una API y devuelve una propuesta de configuración. Es el generalista del conjunto: sirve para cualquier sistema que hable HTTP, tenga o no documentación formal.

Se abre con el ícono de varita en la fila de la Aplicación, en Aplicaciones.

El asistente parte de una URL y propone las operaciones, agrupadas por escenario
El asistente parte de una URL y propone las operaciones, agrupadas por escenario

Qué puede informar

Una URL y, opcionalmente, un texto diciendo qué quiere de esa API.

Usted informaEl CMS hace
La URL de un contrato (.../swagger.json, .../$metadata, .../?wsdl)Lee el contrato y extrae las operaciones con precisión
La URL base del sistemaBusca el contrato en las rutas conocidas; si no lo encuentra, sondea la URL
La URL de la raíz de un servicio OData (.../OData.svc, /sap/opu/odata/sap/API_X_SRV)Encuentra el $metadata justo debajo y lee el servicio entero — ver OData
URL + un prompt (“necesito traer las órdenes abiertas y confirmar el apunte”)Usa el texto para priorizar y nombrar lo que interesa

Contratos reconocidos

El tipo se detecta por el contenido, no por la extensión — un Swagger servido en /api sin extensión alguna se reconoce igual.

FormatoObservación
OpenAPI / SwaggerJSON y YAML, versiones 2 y 3
ODatav2, v3 y v4 — SAP Gateway, S/4HANA, servicios .NET. Cada EntitySet se vuelve lectura y escritura; funciones y acciones se vuelven operaciones propias
WSDLCada operación SOAP con su soapAction
Colección Postmanv2.1 — útil cuando la API no tiene contrato, pero alguien ya armó la colección
MCP (tools/list)Un servidor MCP visto como catálogo de operaciones

Aquí el CMS es cliente de un servidor MCP de terceros, leyendo su catálogo de operaciones. El camino contrario — una IA externa configurando el CMS — es el Servidor MCP, en Servicios de Seguridad.

Rutas que prueba solo

Primero, la propia dirección que usted pegó: si ya es el contrato (.../$metadata, .../openapi.json, ...?wsdl), es esa la que vale. Junto con ella, el $metadata justo debajo y el del nivel de arriba — el caso de quien pegó la raíz de un servicio OData o la URL de un EntitySet.

Si nada de eso responde, el CMS prueba las rutas de convención desde el host y desde los primeros niveles de la dirección: /openapi.json, /swagger.json, /api-json, /v3/api-docs, /swagger/v1/swagger.json, /api-docs y /$metadata — este en todos los niveles de la ruta, porque la raíz de un servicio SAP queda profunda. Parámetros como el sap-client van junto.

/api-json está en la lista porque es la convención de NestJS — el framework del propio CMS. Si su API es NestJS, informe la URL base y listo.

OData

Informe la raíz del servicio, no solo el host. Un host suele publicar varios servicios — un SAP Gateway tiene cientos —, y solo la raíz de cada uno tiene $metadata. La URL de un EntitySet o de una entidad (.../Customers('ALFKI')) también sirve: el CMS sube hasta la raíz.

La versión sale del propio $metadata, y la configuración sigue sus reglas:

Lo que cambia por versiónCómo sale
Llave en la URLTexto entre comillas — /OrdemSet('4711'), como exige SAP. Hasta la v3, Guid, Int64, Decimal y fecha llevan su literal propio (guid'...', 10L, 1.5M, datetime'...'). La llave compuesta sale con nombre
Cuerpo JSONHasta la v3, Int64 y Decimal van como texto ("Menge": "10.000") y Edm.DateTime sin huso; en la v4, número. El tipo complejo se vuelve objeto, y la herencia entre entidades se resuelve
Funciones y accionesv2: operación de servicio, con los parámetros en la URL incluso en el POST. v3: la acción es POST con los parámetros en el cuerpo, la función es GET. v4: FunctionImport es GET, con los valores en los Parámetros Fijos; ActionImport es POST. La vinculada a una entidad sale desde ella — /Ordem('4711')/<namespace>.Liberar
Respuesta de ejemploCon el envoltorio que la Colecta recibe de hecho: d.results en la v2, value con odata.metadata en la v3, value con @odata.context en la v4

Lo que el servicio declara se respeta: un conjunto de solo lectura (sap:creatable="false" en SAP, anotaciones Capabilities en la v4) no recibe escritura, una entidad de medios no recibe creación por JSON, y el $format=json ya viene en los Parámetros Fijos de la Colecta — sin él SAP responde en XML.

Una entidad con control de concurrencia (ETag) exige el encabezado If-Match para modificar o eliminar, y la Entrega no lo envía — la operación llega a la lista con ese aviso. En la v2, la modificación sale como PATCH: SAP Gateway la acepta, pero un servidor v2 que no sea SAP puede exigir MERGE.

Aplicación SAP Gateway

En una Aplicación del tipo SAP Gateway, la URL ya abre como http://host:puerto/sap/opu/odata/sap/ — complétela con el servicio (PP_PRODOPS_CONFIRM_SRV/). Dejar solo ese prefijo se rechaza con un mensaje claro: SAP respondería 500 “Access using a ‘ZERO’ service”, porque ahí no hay ningún servicio.

  • La lectura del contrato usa el usuario y el mandante de la conexión — o la Credencial elegida en el asistente —, pero solo cuando la URL es el servidor de la conexión. Para otra dirección, la llamada sale sin autenticación y sin seguir redirecciones, para que nadie reciba el usuario de SAP escribiendo una dirección propia.
  • El campo Contrato acepta también la URL del contrato (.../PP_PRODOPS_CONFIRM_SRV/$metadata), que se descarga en el momento. Si no se puede descargar, el mensaje trae el estado que devolvió el servidor.

El sondeo y sus límites

Cuando no hay contrato, el CMS hace una petición real a la URL para ver qué vuelve. Eso es una llamada al sistema del cliente, así que está contenida:

  • solo GET — nada que altere estado;
  • 10 segundos de tiempo límite;
  • 1 MB de respuesta, como máximo;
  • 3 redirecciones, como máximo;
  • las direcciones de metadatos de nube (el 169.254.169.254 de AWS/Azure/GCP y equivalentes) están bloqueadas, para que una URL pegada por error no se convierta en lectura de credencial de instancia.

De dónde vino cada operación

Cada operación de la lista trae una etiqueta de procedencia, y es lo que separa lo que el CMS sabe de lo que supone:

EtiquetaSignifica
CONTRATOVino del Swagger/OData/WSDL. Es información exacta
SONDEOVino de una respuesta real de la API
INFERIDOFue propuesto por la IA a partir del contexto

Preste atención especial a las INFERIDO a la hora de revisar: son las que pueden estar plausibles y equivocadas al mismo tiempo.

La lista de operaciones

Un Swagger de porte real trae cientos de operaciones. La lista está armada para eso:

  • agrupada por escenario, con los grupos cerrados y un contador en cada uno;
  • marcar / limpiar el grupo entero de una vez;
  • filtro por dirección (Colecta o Entrega) y búsqueda por texto — buscar abre los grupos solo;
  • detalle bajo demanda: campos obligatorios y ejemplo de cuerpo se buscan cuando usted hace clic en “ver detalle”, no para las 450 operaciones de una vez.

Revisión e instalación

Antes de grabar, la revisión muestra cada objeto con CREAR, ACTUALIZAR o PERSONALIZADO, y permite renombrar cualquier sigla o señalar una Interface existente en lugar de la propuesta.

Probar las lecturas ahora ejecuta las Colectas elegidas contra la API, en la dirección y con los Parámetros Fijos que tendrán, y muestra la respuesta de cada una. Las Entregas nunca se disparan desde ahí — escribirían en el sistema de destino. Una lectura que depende de un campo del mensaje (la llave de /OrdemSet('{{Aufnr}}')) solo se puede probar con un mensaje real.

La URL de la Aplicación. La Colecta llama a la dirección de la Aplicación más la ruta de la operación. Si la Aplicación todavía no tiene URL, recibe la URL base confirmada en el asistente. Si tiene solo el host, las Colectas llevan la ruta de la raíz del servicio (/sap/opu/odata/sap/API_X_SRV/OrdemSet). Una URL en otro host no se cambia — es decisión de quien registró la Aplicación (un proxy, otro ambiente) —, así que conviene revisar la ruta de las Colectas después de instalar.

Después de instalar, el asistente muestra lo que se creó con enlace a cada pantalla — Interfaces, Colectas, Entregas y Errores de Negocio. Como todo nace desactivado, ese enlace es el próximo paso, no un detalle.

Autenticación

Si la API exige credencial, regístrela antes en Credenciales y elíjala en el asistente. El CMS cubre Basic, Bearer, API Key, login con token y OAuth2 client credentials — este último con renovación automática, scope y parámetros extra cuando el proveedor lo exige.

Un secreto nunca llega a la IA. Token, contraseña y clave de API son sustituidos por marcadores antes de que cualquier texto se envíe al modelo — incluso cuando aparecen dentro de un ejemplo de petición del propio contrato.