Adapter testen und debuggen
improve this page | report issueÜbersicht
Sie können IDEs wie Eclipse, IntelliJ oder ähnliche verwenden, um Java- und JavaScript-Adapter zu testen und um Java-Code zu debuggen, der für Java- oder JavaScript-Adapter implementiert werden soll.
Dieses Lernprogramm zeigt, wie Sie Adapter mithilfe der MobileFirst CLI und mit Postman testen und einen Java-Adapter in der Eclipse-IDE debuggen können.
Fahren Sie mit folgenden Abschnitten fort:
Adapter testen
Adapter sind über eine REST-Schnittstelle verfügbar. Wenn Sie die URL einer Ressource kennen, können Sie daher
HTTP-Tools wie Postman verwenden, um Anforderungen zu testen und URL
-, path
- und body
-Parameter
oder headers
zu übergeben.
Die URL für den Zugriff auf die Adapterressource hat folgende Struktur:
- JavaScript-Adapter -
http://hostname-or-ip-address:port-number/mfp/api/adapters/{adapter-name}/{procedure-name}
- Java-Adapter -
http://hostname-or-ip-address:port-number/mfp/api/adapters/{adapter-name}/{path}
Parameter übergeben
- Wenn Sie Java-Adapter verwenden, können Sie je nach Konfiguration Ihres Adapters Parameter in der URL, im Hauptteil, im Formular usw. übergeben.
- Wenn Sie JavaScript-Adapter verwenden, übergeben Sie Parameter in der Form
params=["param1", "param2"]
. Eine JavaScript-Prozedur empfängt also nur einen Parameter mit der Bezeichnungparams
, bei dem es sich um ein Array mit sortierten, nicht benannten Werten handeln muss. Dieser Parameter kann bei Verwendung vonContent-Type: application/x-www-form-urlencoded
in der URL enthalten sein (GET
) oder im Hauptteil (POST
).
Handhabung der Sicherheit
Das Sicherheitsframework der Mobile Foundation erfordert für jede Adapterressource ein Zugriffstoken. Dies gilt auch dann, wenn der Ressource nicht explizit ein Bereich zugeordnet wurde. Der Endpunkt ist somit immer geschützt, es sei denn, Sie haben die Sicherheit inaktiviert.
Wenn Sie die Sicherheit in Java-Adaptern inaktivieren möchten, fügen Sie zur Methode/Klasse die Annotation OAuthSecurity
hinzu:
@OAuthSecurity(enabled=false)
Wenn Sie die Sicherheit in JavaScript-Adaptern inaktivieren möchten, fügen Sie zur Prozedur das Attribut secured
hinzu:
<procedure name="adapter-procedure-name" secured="false"/>
In der Entwicklungsversion von MobileFirst Server gibt es als Alternative einen Testtokenendpunkt zum Umgehen der Sicherheitsabfragen.
Postman
Testtoken
Zum Abrufen eines Testtokens können Sie unten auf die Schaltfläche “In Postman ausführen” klicken und eine Sammlung in Ihre Postman-App mit einer fertigen Anforderung importieren oder den nächsten Schritt ausführen und eine eigene Anforderung erstellen.
-
Setzen Sie mit Ihrem HTTP-Client (Postman) eine HTTP-
POST
-Anforderung anhttp://<IP-Adresse>:<PORT>/mfp/api/az/v1/token
ab. Verwenden SieContent-Type: application/x-www-form-urlencoded
und die folgenden Parameter:- Setzen Sie
grant_type
auf den Wertclient_credentials
. - Setzen Sie
scope
auf den schützenden Bereich für Ihre Ressource. Wenn Ihrer Ressource kein schützender Bereich zugewiesen ist, lassen Sie diesen Parameter weg, damit der Standardbereich (RegisteredClient
) verwendet wird. Weitere Informationen finden Sie unter Bereiche.
- Setzen Sie
-
Fügen Sie einen Autorisierungsheader (
authorization header
) hinzu. Verwenden Sie die Basisauthentifizierung (Basic authentication
) mit “test” als ID des vertraulichen Clients und “test” als geheimem Schlüssel.Weitere Informationen zu vertraulichen Clients finden Sie unter Vertrauliche Clients.
Das Ergebnis ist ein JSON-Objekt mit einem temporär gültigen Zugriffstoken:
{
"access_token": "eyJhbGciOiJSUzI1NiIsImp3ayI6eyJlIjoiQVFBQiIsIm4iOiJBTTBEZDd4QWR2NkgteWdMN3I4cUNMZEUtM0kya2s0NXpnWnREZF9xczhmdm5ZZmRpcVRTVjRfMnQ2T0dHOENWNUNlNDFQTXBJd21MNDEwWDlJWm52aHhvWWlGY01TYU9lSXFvZS1ySkEwdVp1dzJySGhYWjNXVkNlS2V6UlZjQ09Zc1FOLW1RSzBtZno1XzNvLWV2MFVZd1hrU093QkJsMUVocUl3VkR3T2llZzJKTUdsMEVYc1BaZmtOWkktSFU0b01paS1Uck5MelJXa01tTHZtMDloTDV6b3NVTkExNXZlQ0twaDJXcG1TbTJTNjFuRGhIN2dMRW95bURuVEVqUFk1QW9oMmluSS0zNlJHWVZNVVViTzQ2Q3JOVVl1SW9iT2lYbEx6QklodUlDcGZWZHhUX3g3c3RLWDVDOUJmTVRCNEdrT0hQNWNVdjdOejFkRGhJUHU4Iiwia3R5IjoiUlNBIiwia2lkIjoidGVzdCJ9fQ.eyJpc3MiOiJjb20uaWJtLm1mcCIsInN1YiI6InRlc3QiLCJhdWQiOiJjb20uaWJtLm1mcCIsImV4cCI6MTQ1MjUxNjczODAwNSwic2NvcGUiOiJ4eCJ9.vhjSkv5GShCpcDSu1XCp1FlgSpMHZa-fcJd3iB4JR-xr_3HOK54c36ed_U5s3rvXViao5E4HQUZ7PlEOl23bR0RGT2bMGJHiU7c0lyrMV5YE9FdMxqZ5MKHvRnSOeWlt2Vc2izh0pMMTZd-oL-0w1T8e-F968vycyXeMs4UAbp5Dr2C3DcXCzG_h9jujsNNxgXL5mKJem8EpZPolQ9Rgy2bqt45D06QTW7J9Q9GXKt1XrkZ9bGpL-HgE2ihYeHBygFll80M8O56By5KHwfSvGDJ8BMdasHFfGDRZUtC_yz64mH1lVxz5o0vWqPwEuyfslTNCN-M8c3W9-6fQRjO4bw",
"token_type": "Bearer",
"expires_in": 3599,
"scope": "**"
}
Anforderung senden
Fügen Sie in Ihren künftigen Anforderungen an die Adapterendpunkte einen HTTP-Header mit dem Namen Authorization
und den Wert, den
Sie erhalten haben (und der mit Bearer beginnt), hinzu. Das Sicherheitsframework übergeht alle Sicherheitsabfragen zum Schutz Ihrer Ressource.
Swagger
Die Benutzerschnittstelle für Swagger-Dokumente ist eine grafische Darstellung von REST-Endpunkten eines Adapters.
In Swagger kann ein Entwickler die Adapterendpunkte testen, bevor sie von einer Clientanwendung konsumiert werden.
Greifen Sie wie folgt auf Swagger zu:
- Öffnen Sie die MobileFirst Operations Console und wählen Sie in der Adapterliste einen Adapter aus.
- Klicken Sie auf das Register Ressourcen.
- Klicken Sie auf die Schaltfläche Swagger-Dokumente anzeigen.
- Klicken Sie auf die Schaltfläche Ein-/Ausblenden.
Testtoken hinzufügen
Wenn Sie ein Testtoken zu der Anforderung hinzufügen möchten, damit das Sicherheitsframework alle Sicherheitsabfragen zum Schutz Ihrer Ressource übergeht, klicken Sie am rechten Rand neben einer Endpunktoperation auf die Schaltfläche ON/OFF.
Sie werden aufgefordert, die Bereiche auszuwählen, für die Sie die Swagger-Benutzerschnittstelle berechtigen möchten. (Zu Testzwecken können Sie alle auswählen.) Wenn Sie die Swagger-Benutzerschnittstelle zum ersten Mal verwenden, müssen Sie sich möglicherweise mit einer ID des vertraulichen Clients und einem geheimen Schlüssel anmelden. Sie müssen dazu einen neuen vertraulichen Client mit
*
als zulässigem Bereich erstellen.
Weitere Informationen zum vertraulichen Client enthält das Lernprogramm Vertraulicher Client.
Anforderung senden
Blenden Sie die Operation des Endpunkts ein, geben Sie (sofern erforderlich) die Parameter ein und klicken Sie auf die Schaltfläche Try it out!.
Swagger-Annotationen
Die Annotationen sind nur für Java-Adapter verfügbar.
Wenn Sie eine Swagger-Dokumentation für Java-Adapter generieren möchten, verwenden Sie in Ihrer Java-Implementierung Swagger-Annotationen.
Weitere Informationen zu Swagger-Annotationen finden Sie in der Swagger-Dokumentation.
@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;
}
Adapter debuggen
JavaScript-Adapter
Sie können JavaScript-Code von JavaScript-Adaptern mit der API MFP.Logger
debuggen.
Die verfügbaren Protokollierungsstufen von der geringsten bis zur größten Ausführlichkeit sind: MFP.Logger.error
, MFP.Logger.warn
, MFP.Logger.info
und MFP.Logger.debug
.
Die Protokolle werden dann in der Protokolldatei des Anwendungsservers ausgegeben.
Sie müssen die Ausführlichkeit des Servers entsprechend festlegen, da Sie andernfalls keine Protokollierung in der Protokolldatei sehen.
Java-Adapter
Vor dem Debuggen des Java-Codes eines Adapters muss Eclipse wie folgt konfiguriert werden:
- Maven-Integration: Ab Eclipse Kepler (Version 4.3) ist Maven-Unterstützung in Eclipse integriert.
Falls Ihre Eclipse-Instanz keine Unterstützung für Maven bietet, folgen Sie den Anweisungen unter M2Eclipse, um Maven-Unterstützung hinzuzufügen.
-
Wenn Maven in Eclipse verfügbar ist, importieren Sie das Maven-Adapterprojekt.
- Geben Sie wie folgt die Debugparameter an:
- Klicken Sie auf Ausführen → Debugkonfigurationen.
- Klicken Sie doppelt auf Ferne Java-Anwendung.
- Geben Sie einen Namen für dise Konfiguration an.
- Legen Sie den Host fest. Geben Sie “localhost” an, wenn Sie einen lokalen Server verwenden. Geben Sie andernfalls den Namen Ihres fernen Serverhosts an.
- Setzen Sie den Port auf den Wert “10777”.
- Klicken Sie auf Durchsuchen und wählen Sie das Maven-Projekt aus.
- Klicken Sie auf Debug.
-
Klicken Sie auf Fenster → Sicht anzeigen → Debug, um debug mode einzugeben. Jetzt können Sie den Java-Code normal debuggen, wie Sie es in einer Java-Standardanwendung tun würden. Sie müssen eine Anforderung an den Adapter absetzen, damit der Code ausgeführt wird und die definierten Breakpoints erreicht werden. Befolgen Sie zu diesem Zweck die Anweisungen für das Aufrufen einer Adapterressource im Abschnitt Adapter testen.
▲Anweisungen für die Nutzung von IntelliJ zum Debuggen von Java-Adaptern finden Sie im Blogbeitrag Using IntelliJ to Develop MobileFirst Java Adapters.
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.