Pruebas y depuración de adaptadores
improve this page | report issueVisión general
Utilice entornos de desarrollo integrado (IDE) como, por ejemplo, Eclipse, IntelliJ o similares, para probar adaptadores Java y JavaScript, y para depurar código Java implementado para utilizar en adaptadores Java o JavaScript.
Esta guía de aprendizaje muestra cómo probar adaptadores mediante MobileFirst CLI y Postman. También muestra cómo depurar un adaptador Java mediante el IDE de Eclipse.
Ir a
- Prueba de adaptadores
- Utilización de Postman
- Utilización de Swagger
- Depuración de adaptadores
- Adaptadores de JavaScript
- Adaptadores Java
Prueba de adaptadores
Los adaptadores están disponibles a través de una interfaz REST. Esto significa que si conoce el URL de un recurso, puede utilizar herramientas HTTP como, por ejemplo, Postman para probar solicitudes y pasar parámetros de URL
, parámetros de vía de acceso
, parámetros de cuerpo
o parámetros de cabeceras
según sea necesario.
La estructura del URL utilizada para acceder al recurso de adaptador es:
- En adaptadores JavaScript -
http://hostname-or-ip-address:port-number/mfp/api/adapters/{adapter-name}/{procedure-name}
- En adaptadores Java -
http://hostname-or-ip-address:port-number/mfp/api/adapters/{adapter-name}/{path}
Cómo pasar parámetros
- Cuando se utilizan adaptadores Java, se pueden pasar parámetros en el URL, el cuerpo, el formulario, etc, dependiendo de cómo se haya configurado el adaptador.
- Cuando se utilizan adaptadores JavaScript, los parámetros se pasan como
params=["param1", "param2"]
. En otras palabras, un procedimiento JavaScript recibe un solo parámetro denominadoparams
que debe ser una matriz ordenada de valores sin nombre. Este parámetro puede estar en el URL (GET
) o en el cuerpo (POST
) utilizandoContent-Type: application/x-www-form-urlencoded
.
Manejo de la seguridad
La infraestructura de seguridad de Mobile Foundation precisa de una señal de acceso para todos los recursos de adaptadores, incluso cuando a estos no se les haya sido asignado de forma explícita un ámbito. Por ello, a no ser que de forma específica haya inhabilitado la seguridad, el punto final siempre estará protegido.
Para inhabilitar la seguridad en adaptadores Java, adjunte la anotación OAuthSecurity
al método/clase:
@OAuthSecurity(enabled=false)
Para inhabilitar la seguridad en adaptadores JavaScript, añada el atributo secured
al procedimiento:
<procedure name="adapter-procedure-name" secured="false"/>
De forma alternativa, la versión de desarrollo de MobileFirst Server incluye un punto final de señal de prueba para omitir los desafíos de seguridad.
Utilización de Postman
Señal de prueba
Para recibir una señal de prueba, pulse el botón “Ejecutar en Postman” abajo para importar una recopilación para su aplicación Postman que contenga una solicitud lista, o siga los siguientes pasos para crear usted mismo la solicitud.
-
Utilice su cliente HTTP (Postman) para realizar una solicitud
POST
HTTP ahttp://<IP>:<PORT>/mfp/api/az/v1/token
con los parámetros siguientes utilizandoContent-Type: application/x-www-form-urlencoded
:grant_type
- Establezca el valor enclient_credentials
.scope
- Establezca el valor en el ámbito de protección de su recurso. Si su recurso no está asignado a un ámbito de protección, omita este parámetro para aplicar el ámbito predeterminado (RegisteredClient
). Para obtener más información, consulte Ámbitos.
-
Añada una
cabecera de autorización
medianteAutenticación básica
con ID de cliente confidencial (“test”) y secreto (“test”).Para obtener más información sobre los clientes confidenciales, consulte Clientes confidenciales.
El resultado es un objeto JSON con una señal de acceso válido temporal:
{
"access_token": "eyJhbGciOiJSUzI1NiIsImp3ayI6eyJlIjoiQVFBQiIsIm4iOiJBTTBEZDd4QWR2NkgteWdMN3I4cUNMZEUtM0kya2s0NXpnWnREZF9xczhmdm5ZZmRpcVRTVjRfMnQ2T0dHOENWNUNlNDFQTXBJd21MNDEwWDlJWm52aHhvWWlGY01TYU9lSXFvZS1ySkEwdVp1dzJySGhYWjNXVkNlS2V6UlZjQ09Zc1FOLW1RSzBtZno1XzNvLWV2MFVZd1hrU093QkJsMUVocUl3VkR3T2llZzJKTUdsMEVYc1BaZmtOWkktSFU0b01paS1Uck5MelJXa01tTHZtMDloTDV6b3NVTkExNXZlQ0twaDJXcG1TbTJTNjFuRGhIN2dMRW95bURuVEVqUFk1QW9oMmluSS0zNlJHWVZNVVViTzQ2Q3JOVVl1SW9iT2lYbEx6QklodUlDcGZWZHhUX3g3c3RLWDVDOUJmTVRCNEdrT0hQNWNVdjdOejFkRGhJUHU4Iiwia3R5IjoiUlNBIiwia2lkIjoidGVzdCJ9fQ.eyJpc3MiOiJjb20uaWJtLm1mcCIsInN1YiI6InRlc3QiLCJhdWQiOiJjb20uaWJtLm1mcCIsImV4cCI6MTQ1MjUxNjczODAwNSwic2NvcGUiOiJ4eCJ9.vhjSkv5GShCpcDSu1XCp1FlgSpMHZa-fcJd3iB4JR-xr_3HOK54c36ed_U5s3rvXViao5E4HQUZ7PlEOl23bR0RGT2bMGJHiU7c0lyrMV5YE9FdMxqZ5MKHvRnSOeWlt2Vc2izh0pMMTZd-oL-0w1T8e-F968vycyXeMs4UAbp5Dr2C3DcXCzG_h9jujsNNxgXL5mKJem8EpZPolQ9Rgy2bqt45D06QTW7J9Q9GXKt1XrkZ9bGpL-HgE2ihYeHBygFll80M8O56By5KHwfSvGDJ8BMdasHFfGDRZUtC_yz64mH1lVxz5o0vWqPwEuyfslTNCN-M8c3W9-6fQRjO4bw",
"token_type": "Bearer",
"expires_in": 3599,
"scope": "**"
}
Envío de solicitudes
Ahora con cualquier solicitud futura a puntos finales de adaptador, añada una cabecera HTTP con el nombre de Authorization
y el valor recibido con anterioridad (empezando con Bearer). La infraestructura de seguridad omitirá los desafíos de seguridad que protegen a sus recursos.
Utilización de Swagger
La interfaz de usuarios de documentos de Swagger es una representación visual de los puntos finales REST de un adaptador.
Con la ayuda de Swagger, un desarrollador puede probar los puntos finales de un adaptador antes de que los consuma una aplicación de cliente.
Para acceder a Swagger:
- Abra MobileFirst Operations Console y seleccione un adaptador de la lista de adaptadores.
- Pulse en el separador Recursos.
- Pulse en el botón Ver documentos de Swagger.
- Pulse el botón Mostrar/Ocultar.
Adición de una señal de prueba
Para añadir una señal de prueba a la solicitud, de forma que la infraestructura de seguridad omita los desafíos de seguridad que protegen a su recurso, pulse el botón conmutador de activar/desactivar en la esquina superior derecha de una operación de punto final.
Se le solicitará seleccionar los ámbitos en los que desea otorgar a la interfaz de usuario de Swagger (a efectos de realización de las pruebas, puede seleccionarlos todos). Si está utilizando la interfaz de usuario de Swagger por primera vez, se le podría solicitar iniciar una sesión con un ID de cliente confidencial y un secreto. Para esto, necesitará crear un nuevo cliente confidencial con *
como su Ámbito permitido.
Obtenga más información obre el cliente confidencial en la guía de aprendizaje Cliente confidencial.
Envío de solicitudes
Expanda la operación del punto final, especifique los parámetros necesarios (si es necesario) y pulse en el botón de Probarlo.
Anotaciones de Swagger
Únicamente disponible en adaptadores Java.
Para generar la documentación Swagger para los adaptadores Java, utilice las anotaciones proporcionadas con Swagger en su implementación de Java.
Para obtener más información sobre las anotaciones de Swagger, consulte la Documentación de Swagger.
@ApiOperation(value = "Multiple Parameter Types Example", notes = "Example of passing parameters by using 3 different methods: path parameters, headers, and form parameters. A JSON object containing all the received parameters is returned.")
@ApiResponses(value = { @ApiResponse(code = 200, message = "A JSON object containing all the received parameters returned.") })
@POST
@Produces(MediaType.APPLICATION_JSON)
@Path("/{path}")
public Map<String, String> enterInfo(
@ApiParam(value = "The value to be passed as a path parameter", required = true) @PathParam("path") String path,
@ApiParam(value = "The value to be passed as a header", required = true) @HeaderParam("Header") String header,
@ApiParam(value = "The value to be passed as a form parameter", required = true) @FormParam("form") String form) {
Map<String, String> result = new HashMap<String, String>();
result.put("path", path);
result.put("header", header);
result.put("form", form);
return result;
}
Depuración de adaptadores
Adaptadores de JavaScript
Depure código JavaScript en adaptadores JavaScript mediante la API MFP.Logger
.
Los niveles de creación de registro disponibles, de menos detallado o más detallado son: MFP.Logger.error
, MFP.Logger.warn
, MFP.Logger.info
y MFP.Logger.debug
.
Los registros se imprimen entonces en el archivo de registro del servidor de aplicaciones.
Asegúrese de establecer consecuentemente el nivel de detalle del servidor, de lo contrario los registros no se anotarán en el archivo de registro.
Adaptadores Java
Antes de poder depurar el código Java de un adaptador, es necesario configurar Eclipse de la siguiente manera:
-
Integración Maven - A partir de Eclipse Kepler (v4.3), el soporte a Maven está incorporado en Eclipse.
Si su instancia de Eclipse no da soporte a Maven, siga las instrucciones de m2e para añadir el soporte a Maven. -
Una vez Maven esté disponible en Eclipse, importe el proyecto Maven del adaptador:
- Proporcione los parámetros de depuración:
- Pulse Ejecutar → Configuraciones de depuración.
- Efectúe una doble pulsación en Aplicación Java remota.
- Proporcione un Nombre para esta configuración.
- Establezca el valor de Host: utilice “localhost” si está ejecutando un servidor local, o proporcione el nombre del host de servidor remoto.
- Establezca el valor de Puerto en “10777”.
- Pulse Examinar y seleccione el proyecto Maven.
- Pulse Depurar.
-
Pulse en Ventana → Mostrar vista → Depuración para entrar en la modalidad de depuración. Puede ahora depurar el código Java normalmente como lo haría en una aplicación Java estándar. Necesitará emitir una solicitud al adaptador para poder ejecutar el código y alcanzar los puntos de interrupción que haya establecido. Esto se puede lograr siguiendo las instrucciones sobre cómo llamar a un recurso de adaptador en la sección de Prueba de adaptadores.
▲Para obtener instrucciones de como utilizar IntelliJ para depurar adaptadores Java, consulte el artículo del blog Utilización de IntelliJ para desarrollar adaptadores Java de MobileFirst.
Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.