Een HTTP API-streamingverbinding maken met de Flow Service API
De Flow Service wordt gebruikt om klantgegevens van verschillende bronnen binnen Adobe Experience Platform te verzamelen en te centraliseren. De service biedt een gebruikersinterface en RESTful API waaruit alle ondersteunde bronnen kunnen worden aangesloten.
Deze zelfstudie gebruikt de Flow Service API om door de stappen te lopen u tot een het stromen verbinding leidt gebruikend Flow Service API.
Aan de slag
Deze handleiding vereist een goed begrip van de volgende onderdelen van Adobe Experience Platform:
- Experience Data Model (XDM): Het gestandaardiseerde kader waarbinnen Platform organiseert ervaringsgegevens.
- Real-Time Customer Profile: Biedt een uniform, consumentenprofiel in real-time op basis van geaggregeerde gegevens van meerdere bronnen.
Bovendien, vereist het creƫren van een het stromen verbinding u om een doelXDM schema en een dataset te hebben. Lees de zelfstudie voor meer informatie over het maken van deze streaming recordgegevens of de zelfstudie streaming tijdreeksgegevens.
Platform-API's gebruiken
Voor informatie over hoe te om vraag aan Platform APIs met succes te maken, zie de gids op aan de slag met platform-API's.
Een basisverbinding maken
Een basisverbinding geeft de bron aan en bevat de informatie die nodig is om de stroom compatibel te maken met streaming opname-API's. Wanneer u een basisverbinding maakt, kunt u een niet-geverifieerde en een geverifieerde verbinding maken.
Niet-geverifieerde verbinding
Niet-geverifieerde verbindingen zijn de standaardstreamingverbindingen die u kunt maken wanneer u gegevens wilt streamen naar Platform.
Als u een niet-geverifieerde basisverbinding wilt maken, vraagt u een POST om /connections
eindpunt terwijl het verstrekken van een naam voor uw verbinding, het gegevenstype, en identiteitskaart van de HTTP API verbindingsspecificatie. Deze id is bc7b00d6-623a-4dfc-9fdb-f1240aeadaeb
.
API-indeling
POST /flowservice/connections
Verzoek
Met de volgende aanvraag wordt een basisverbinding voor de HTTP-API gemaakt.
code language-shell |
---|
|
code language-shell |
---|
|
name
description
connectionSpec.id
bc7b00d6-623a-4dfc-9fdb-f1240aeadaeb
.auth.params.dataType
xdm
en raw
.auth.params.name
Antwoord
Een geslaagde reactie retourneert HTTP-status 201 met gegevens over de nieuwe verbinding, inclusief de unieke id (id
).
{
"id": "a59d368a-1152-4673-a46e-bd52e8cdb9a9",
"etag": "\"f50185ed-0000-0200-0000-637e8fad0000\""
}
id
id
van uw nieuwe basisverbinding.etag
Geverifieerde verbinding
De voor authentiek verklaarde verbindingen zouden moeten worden gebruikt wanneer u tussen verslagen moet onderscheiden die uit vertrouwde op en niet-vertrouwde op bronnen komen. Gebruikers die gegevens met PII (Personeel Identified Information) willen verzenden, moeten een geverifieerde verbinding maken bij het streamen van gegevens naar Platform.
Als u een geverifieerde basisverbinding wilt maken, moet u de opdracht authenticationRequired
parameter in uw verzoek en specificeer zijn waarde als true
. Tijdens deze stap kunt u ook een bron-id opgeven voor uw geverifieerde basisverbinding. Deze parameter is optioneel en gebruikt dezelfde waarde als de name
kenmerk, als dit niet wordt opgegeven.
API-indeling
POST /flowservice/connections
Verzoek
Met de volgende aanvraag wordt een geverifieerde basisverbinding voor de HTTP-API gemaakt.
code language-shell |
---|
|
code language-shell |
---|
|
auth.params.sourceId
name
kenmerk, als dit niet wordt opgegeven.auth.params.authenticationRequired
authenticationRequired
is ingesteld op true
dan moet de authentificatie voor de het stromen verbinding worden verstrekt. Indien authenticationRequired
is ingesteld op false
dan wordt de authentificatie niet vereist.Antwoord
Een geslaagde reactie retourneert HTTP-status 201 met gegevens over de nieuwe verbinding, inclusief de unieke id (id
).
{
"id": "a59d368a-1152-4673-a46e-bd52e8cdb9a9",
"etag": "\"f50185ed-0000-0200-0000-637e8fad0000\""
}
URL voor streamingeindpunt ophalen
Als de basisverbinding is gemaakt, kunt u nu de URL van het streamingeindpunt ophalen.
API-indeling
GET /flowservice/connections/{BASE_CONNECTION_ID}
{BASE_CONNECTION_ID}
id
De waarde van de verbinding die u eerder hebt gemaakt.Verzoek
curl -X GET https://platform.adobe.io/data/foundation/flowservice/connections/{BASE_CONNECTION_ID} \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
Antwoord
Een succesvolle reactie keert status 200 van HTTP met gedetailleerde informatie over de gevraagde verbinding terug. De URL van het streamingeindpunt wordt automatisch gemaakt met de verbinding en kan worden opgehaald met de inletUrl
waarde.
{
"items": [
{
"id": "a59d368a-1152-4673-a46e-bd52e8cdb9a9",
"createdAt": 1669238699119,
"updatedAt": 1669238699119,
"createdBy": "acme@AdobeID",
"updatedBy": "acme@AdobeID",
"createdClient": "{CREATED_CLIENT}",
"updatedClient": "{UPDATED_CLIENT}",
"sandboxId": "{SANDBOX_ID}",
"sandboxName": "{SANDBOX_NAME}",
"imsOrgId": "{ORG_ID}",
"name": "ACME Streaming Connection XDM Data",
"description": "ACME streaming connection for customer data",
"connectionSpec": {
"id": "bc7b00d6-623a-4dfc-9fdb-f1240aeadaeb",
"version": "1.0"
},
"state": "enabled",
"auth": {
"specName": "Streaming Connection",
"params": {
"sourceId": "ACME Streaming Connection XDM Data",
"inletUrl": "https://dcs.adobedc.net/collection/667b41cf2dbf3509927da1ebf7e93c20afa727cc8d8373e51da18b62e1b985ec",
"authenticationRequired": false,
"inletId": "667b41cf2dbf3509927da1ebf7e93c20afa727cc8d8373e51da18b62e1b985ec",
"dataType": "xdm",
"name": "ACME Streaming Connection XDM Data"
}
},
"version": "\"f50185ed-0000-0200-0000-637e8fad0000\"",
"etag": "\"f50185ed-0000-0200-0000-637e8fad0000\""
}
]
}
Een bronverbinding maken source
Om een bronverbinding tot stand te brengen, doe een verzoek van de POST aan /sourceConnections
eindpunt terwijl het verstrekken van uw identiteitskaart van de basisverbinding.
API-indeling
POST /flowservice/sourceConnections
Verzoek
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/sourceConnections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '{
"name": "ACME Streaming Source Connection for Customer Data",
"description": "A streaming source connection for ACME XDM Customer Data",
"baseConnectionId": "a59d368a-1152-4673-a46e-bd52e8cdb9a9",
"connectionSpec": {
"id": "bc7b00d6-623a-4dfc-9fdb-f1240aeadaeb",
"version": "1.0"
}
}'
Antwoord
Een geslaagde reactie retourneert HTTP-status 201 met gedetailleerde informatie over de nieuwe bronverbinding, inclusief de unieke id (id
).
{
"id": "34ece231-294d-416c-ad2a-5a5dfb2bc69f",
"etag": "\"d505125b-0000-0200-0000-637eb7790000\""
}
Een doel-XDM-schema maken target-schema
Om de brongegevens in Platform te gebruiken, moet een doelschema worden gecreeerd om de brongegevens volgens uw behoeften te structureren. Het doelschema wordt dan gebruikt om een dataset van het Platform tot stand te brengen waarin de brongegevens bevat zijn.
Een doelXDM schema kan tot stand worden gebracht door een POST verzoek aan te voeren Schema-register-API.
Voor gedetailleerde stappen op hoe te om een doelXDM schema tot stand te brengen, zie de zelfstudie op een schema maken met de API.
Een doelgegevensset maken target-dataset
Een doeldataset kan tot stand worden gebracht door een verzoek van de POST aan Catalogusservice-API, op voorwaarde dat de id van het doelschema zich binnen de payload bevindt.
Voor gedetailleerde stappen op hoe te om een doeldataset tot stand te brengen, zie het leerprogramma op een gegevensset maken met de API.
Een doelverbinding maken target
Een doelverbinding vertegenwoordigt de verbinding aan de bestemming waar de ingesloten gegevens binnen landen. Als u een doelverbinding wilt maken, vraagt u de POST om /targetConnections
terwijl het verstrekken van IDs voor uw doeldataset en doelXDM schema. Tijdens deze stap, moet u ook identiteitskaart van de de verbindingsspecificatie van het datumpigment verstrekken. Deze id is c604ff05-7f1a-43c0-8e18-33bf874cb11c
.
API-indeling
POST /flowservice/targetConnections
Verzoek
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/targetConnections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '{
"name": "ACME Streaming Target Connection",
"description": "ACME Streaming Target Connection",
"data": {
"schema": {
"id": "https://ns.adobe.com/{TENANT}/schemas/7f682c29f887512a897791e7161b90a1ae7ed3dd07a177b1",
"version": "application/vnd.adobe.xed-full+json;version=1.0"
}
},
"params": {
"dataSetId": "637eb7fadc8a211b6312b65b"
},
"connectionSpec": {
"id": "c604ff05-7f1a-43c0-8e18-33bf874cb11c",
"version": "1.0"
}
}'
Antwoord
Een geslaagde reactie retourneert HTTP-status 201 met details van de nieuwe doelverbinding, inclusief de unieke id (id
).
{
"id": "07f2f6ff-1da5-4704-916a-c615b873cba9",
"etag": "\"340680f7-0000-0200-0000-637eb8730000\""
}
Een toewijzing maken mapping
Opdat de brongegevens in een doeldataset moeten worden opgenomen, moet het eerst aan het doelschema worden in kaart gebracht dat de doeldataset zich aan houdt.
Als u een toewijzingenset wilt maken, vraagt u een POST aan de mappingSets
het eindpunt van de Data Prep API terwijl u uw doel-XDM-schema aanbiedt $id
en de details van de toewijzingssets die u wilt maken.
API-indeling
POST /mappingSets
Verzoek
curl -X POST \
'https://platform.adobe.io/data/foundation/mappingSets' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"version": 0,
"xdmSchema": "https://ns.adobe.com/{TENANT}/schemas/7f682c29f887512a897791e7161b90a1ae7ed3dd07a177b1",
"xdmVersion": "1.0",
"mappings": [
{
"destinationXdmPath": "person.name.firstName",
"sourceAttribute": "firstName",
"identity": false,
"version": 0
},
{
"destinationXdmPath": "person.name.lastName",
"sourceAttribute": "lastName",
"identity": false,
"version": 0
}
]
}'
xdmSchema
$id
van het doel-XDM-schema.Antwoord
Een geslaagde reactie retourneert details van de nieuwe toewijzing inclusief de unieke id (id
). Deze id is in een latere stap vereist om een gegevensstroom te maken.
{
"id": "79a623960d3f4969835c9e00dc90c8df",
"version": 0,
"createdDate": 1669249214031,
"modifiedDate": 1669249214031,
"createdBy": "acme@AdobeID",
"modifiedBy": "acme@AdobeID"
}
Een gegevensstroom maken
Wanneer uw bron- en doelverbindingen zijn gemaakt, kunt u nu een gegevensstroom maken. De dataflow is verantwoordelijk voor het plannen en verzamelen van gegevens uit een bron. U kunt een gegevensstroom tot stand brengen door een verzoek van de POST aan /flows
eindpunt.
API-indeling
POST /flows
Verzoek
Met de volgende aanvraag wordt een streaminggegevensstroom voor de HTTP-API zonder gegevenstransformaties gemaakt.
code language-shell |
---|
|
Met de volgende aanvragen wordt een streaming gegevensstroom voor de HTTP-API gemaakt, waarbij transformaties worden toegepast op de gegevens.
Wanneer u een gegevensstroom maakt met transformaties, worden de name
parameter kan niet worden gewijzigd. Deze waarde moet altijd worden ingesteld op Mapping
.
code language-shell |
---|
|
name
description
flowSpec.id
c1a19761-d2c7-4702-b9fa-fe91f0613e81
. Als u een gegevensstroom zonder transformaties wilt maken, gebruikt u d8a6f005-7eaf-4153-983e-e8574508b877
.sourceConnectionIds
targetConnectionIds
transformations.params.mappingId
Antwoord
Een geslaagde reactie retourneert HTTP-status 201 met details over de nieuwe gegevensstroom, inclusief de unieke id (id
).
{
"id": "f2ae0194-8bd8-4a40-a4d9-f07bdc3e6ce2",
"etag": "\"dc0459ae-0000-0200-0000-637ebaec0000\""
}
Post gegevens die aan Platform moeten worden opgenomen ingest-data
Nu u uw stroom hebt gecreeerd, kunt u uw JSON- bericht naar het het stromen eindpunt verzenden u eerder creeerde.
API-indeling
POST /collection/{INLET_URL}
{INLET_URL}
/connections
eindpunt terwijl het verstrekken van uw identiteitskaart van de basisverbinding.{FLOW_ID}
Verzoek
code language-shell |
---|
|
Wanneer u onbewerkte gegevens verzendt, kunt u de flow-id opgeven als een queryparameter of als onderdeel van de HTTP-header. In het volgende voorbeeld wordt de flow-id opgegeven als een HTTP-header.
code language-shell |
---|
|
Wanneer u onbewerkte gegevens verzendt, kunt u de flow-id opgeven als een queryparameter of als een HTTP-header. In het volgende voorbeeld wordt de flow-id opgegeven als een queryparameter.
code language-shell |
---|
|
Antwoord
Een geslaagde reactie retourneert HTTP status 200 met details van de nieuw opgenomen informatie.
{
"inletId": "{BASE_CONNECTION_ID}",
"xactionId": "1584479347507:2153:240",
"receivedTimeMs": 1584479347507
}
{BASE_CONNECTION_ID}
xactionId
receivedTimeMs
Volgende stappen
Door deze zelfstudie te volgen, hebt u een het stromen verbinding van HTTP gecreeerd, toelatend u om het stromen eindpunt te gebruiken om gegevens in Platform in te voeren. Voor instructies voor het maken van een streamingverbinding in de gebruikersinterface leest u de een zelfstudie over streamingverbindingen maken.
Lees de zelfstudie voor meer informatie over het streamen van gegevens naar Platform. streaming tijdreeksgegevens of de zelfstudie streaming recordgegevens.
Bijlage
Deze sectie bevat aanvullende informatie over het maken van streamingverbindingen met de API.
Berichten verzenden naar een geverifieerde streamingverbinding
Als verificatie is ingeschakeld voor een streamingverbinding, moet de client het volgende toevoegen Authorization
aan hun verzoek.
Als de Authorization
header is not present, or an invalid/expired access token is sent, an HTTP 401 Unauthorised response will be returned, with a similar response as below:
Antwoord
{
"type": "https://ns.adobe.com/adobecloud/problem/data-collection-service-authorization",
"status": "401",
"title": "Authorization",
"report": {
"message": "[id] Ims service token is empty"
}
}