You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: obp-api/src/main/resources/docs/introductory_system_documentation.md
+50Lines changed: 50 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1294,6 +1294,56 @@ Adapters listen to message queues or remote calls, parse incoming messages accor
1294
1294
- Adapter in Go for high-performance transaction processing
1295
1295
- Adapter in Scala for Akka-based distributed systems
1296
1296
1297
+
**Testing Adapters with Connector Endpoints:**
1298
+
1299
+
When building an adapter, you can use the `connector.name.export.as.endpoints` props setting to expose all of a connector's internal methods as REST endpoints. This is very useful during adapter development because it allows you to call individual connector methods directly (e.g. `getBank`, `getBankAccount`) and inspect their request/response payloads without needing to go through the full API layer.
1300
+
1301
+
When this property is set, OBP-API registers endpoints at `/obp/connector/{methodName}` which accept JSON request bodies matching the corresponding OutBound DTO and return JSON responses matching the InBound DTO. This lets you test each connector method in isolation.
1302
+
1303
+
```properties
1304
+
# Export a connector's methods as REST endpoints for development/testing
1305
+
# Set this to the connector name you are building an adapter for:
- If `connector=star`, the value must match one of the connectors listed in `starConnector_supported_types`
1311
+
- If `connector=mapped`, the value can be `mapped`
1312
+
- Otherwise, the value must match the `connector` props value (e.g. if `connector=rest_vMar2019`, set `connector.name.export.as.endpoints=rest_vMar2019`)
1313
+
1314
+
**Access control:** Calling these endpoints requires the `CanGetConnectorEndpoint` entitlement.
1315
+
1316
+
**Debugging Adapters with Connector Traces:**
1317
+
1318
+
Connector traces capture the full outbound (request) and inbound (response) messages for every connector call. This is invaluable when building an adapter because you can see exactly what OBP-API sent to your adapter and what it received back, making it easy to diagnose serialization issues, missing fields, or unexpected responses.
1319
+
1320
+
Enable connector traces with:
1321
+
1322
+
```properties
1323
+
write_connector_trace=true
1324
+
```
1325
+
1326
+
Each trace records:
1327
+
-**correlationId** — links the trace to the originating API request
1328
+
-**connectorName** — which connector was used (e.g. `rabbitmq_vOct2024`)
1329
+
-**functionName** — the connector method called (e.g. `getBank`, `getBankAccount`)
1330
+
-**bankId** — the bank identifier, if applicable
1331
+
-**outboundMessage** — full serialized request parameters sent to the adapter
1332
+
-**inboundMessage** — full serialized response received from the adapter
1333
+
-**duration** — call duration in milliseconds
1334
+
-**isSuccessful** — whether the call succeeded
1335
+
-**userId**, **httpVerb**, **url** — context about the originating API request
1336
+
1337
+
Traces can be retrieved via the API:
1338
+
1339
+
```
1340
+
GET /obp/v6.0.0/management/connector/traces
1341
+
```
1342
+
1343
+
This endpoint supports filtering by `connector_name`, `function_name`, `correlation_id`, `bank_id`, `user_id`, `from_date`, `to_date`, and pagination with `limit` and `offset`. It requires the `CanGetConnectorTrace` entitlement.
1344
+
1345
+
There is also a **Connector Traces** page in **API Manager** which provides a UI for browsing and filtering connector traces.
logger.info(s"createBootstrapOidcOperatorConsumer says: oidc_operator_consumer_key and/or oidc_operator_consumer_secret props are not set, skipping")
1117
+
} elseif (oidcOperatorConsumerKey.length <10) {
1118
+
logger.error(s"createBootstrapOidcOperatorConsumer says: oidc_operator_consumer_key is too short (${oidcOperatorConsumerKey.length} chars, minimum 10), skipping")
1119
+
} elseif (oidcOperatorConsumerKey.length >250) {
1120
+
logger.error(s"createBootstrapOidcOperatorConsumer says: oidc_operator_consumer_key is too long (${oidcOperatorConsumerKey.length} chars, maximum 250), skipping")
logger.error(s"createBootstrapOidcOperatorConsumer says: oidc_operator_consumer_secret is too short (${oidcOperatorConsumerSecret.length} chars, minimum 10), skipping")
logger.error(s"createBootstrapOidcOperatorConsumer says: oidc_operator_consumer_secret is too long (${oidcOperatorConsumerSecret.length} chars, maximum 250), skipping")
|This endpoint supports **User OR Application** authentication. You can authenticate either as a logged-in User (with Entitlements) or as an Application using a Consumer Key (with Scopes).
1632
+
|See ${Glossary.getGlossaryItemLink("API.Endpoint Auth Modes")} for more information.
0 commit comments