Werken met de beperkings-API

Met de Throttling-API kunt u uw throttling-configuraties maken, configureren en controleren om het aantal gebeurtenissen dat per seconde wordt verzonden te beperken.

Deze sectie bevat algemene informatie over het werken met de API. Een gedetailleerde API-beschrijving is beschikbaar in Adobe Journey Optimizer API-documentatie.

IMPORTANT
Momenteel is slechts één configuratie per organisatie toegestaan. Een configuratie moet worden gedefinieerd voor een productiesandbox (gegeven via x-sandbox-name in de headers).
Een configuratie wordt toegepast op organisatieniveau.
Wanneer de in de API ingestelde limiet is bereikt, worden verdere gebeurtenissen maximaal 6 uur in de wachtrij geplaatst. Deze waarde kan niet worden gewijzigd.

Beschrijving van beperkings-API description

Methode
Pad
Beschrijving
POST
list/throttlingConfigs
Ontvang een lijst van de beperkingsconfiguraties
POST
/throttlingConfigs
Een beperkingsconfiguratie maken
POST
/throttlingConfigs/{uid}/deploy
Beperkingsconfiguratie implementeren
POST
/throttlingConfigs/{uid}/undeploy
Implementatie van een beperkingsconfiguratie ongedaan maken
POST
/throttlingConfigs/{uid}/canDeploy
Controleren of een beperkingsconfiguratie kan worden geïmplementeerd of niet
PUT
/throttlingConfigs/{uid}
Een beperkingsconfiguratie bijwerken
GET
/throttlingConfigs/{uid}
Een beperkingsconfiguratie ophalen
DELETE
/throttlingConfigs/{uid}
Een beperkingsconfiguratie verwijderen

Beperkingsconfiguratie  configuration

Dit is de structuur van een beperkingsconfiguratie. De attributen name en description zijn optioneel.

{
    "name": "<given name - free text>",
    "description": "<given description - free text>"
    "urlPattern": "<endpoint URL - wildcards are allowed>",
    "methods": [ "<HTTP method such as GET, POST, PUT>" ],
    "maxThroughput": <max call throughput>
}

Voorbeeld:

{
  "name": "throttling-config-external",
  "description": "example of throttling config for an external endpoint",
  "urlPattern": "https://api.example.org/data/2.5/*",
  "methods": ["POST", "PUT"],
  "maxThroughput": 4000
}

Fouten

Bij het maken of bijwerken van een configuratie valideert het proces de gegeven configuratie en retourneert de validatiestatus die wordt geïdentificeerd door de unieke ID, ofwel:

"ok" or "error"
IMPORTANT
De attributen maxThroughput, urlPattern en methods zijn verplicht.
maxThroughput-waarde moet tussen 200 en 5000 liggen.

Bij het maken, verwijderen of implementeren van een beperkingsconfiguratie kunnen de volgende fouten optreden:

  • ERR_THROTTLING_CONFIG_100: beperkingsconfig: <mandatory attribute> vereist
  • ERR_THROTTLING_CONFIG_101: beperkingsconfig: maxThroughput is vereist en moet groter zijn dan of gelijk aan 200 en kleiner dan of gelijk aan 5000
  • ERR_THROTTLING_CONFIG_104: beperkingsconfig: niet-welgevormd URL-patroon
  • ERR_THROTTLING_CONFIG_105: beperkingsconfig: jokers zijn niet toegestaan in het hostgedeelte van het URL-patroon
  • ERR_THROTTLING_CONFIG_106: beperkingsconfig: ongeldige payload
  • THROTTLING_CONFIG_DELETE_FORBIDDEN_ERROR: 1456, "Kan een geïmplementeerde beperkingsconfiguratie niet verwijderen. Implementatie ongedaan maken voordat deze wordt verwijderd"
  • THROTTLING_CONFIG_DELETE_ERROR: 1457, "Kan beperkingsconfiguratie niet verwijderen: onverwachte fout"
  • THROTTLING_CONFIG_DEPLOY_ERROR: 1458, "Kan beperkingsconfiguratie niet implementeren: onverwachte fout "
  • THROTTLING_CONFIG_UNDEPLOY_ERROR: 1459, "Kan beperkingsconfig niet ongedaan maken: onverwachte fout"
  • THROTTLING_CONFIG_GET_ERROR: 1460, "Kan geen beperkingsconfiguratie krijgen: onverwachte fout"
  • THROTTLING_CONFIG_UPDATE_NOT_ACTIVE_ERROR: 1461, "Kan beperkingsconfiguratie niet bijwerken: runtime versie is niet actief"
  • THROTTLING_CONFIG_UPDATE_ERROR: 1462, "Kan beperkingsconfiguratie niet bijwerken: onverwachte fout"
  • THROTTLING_CONFIG_NON_PROD_SANDBOX_ERROR: 1463, "Operatie niet toegestaan op beperkingsconfig: non prod sandbox"
  • THROTTLING_CONFIG_CREATE_ERROR: 1464, "Kan geen beperkingsconfiguratie maken: onverwachte fout"
  • THROTTLING_CONFIG_CREATE_LIMIT_ERROR: 1465, "Kan geen beperkingsconfiguratie maken: slechts één configuratie toegestaan per org"
  • THROTTLING_CONFIG_ALREADY_DEPLOYED_ERROR: 1466, "Kan beperkingsconfiguratie niet implementeren: reeds geïmplementeerd"
  • THROTTLING_CONFIG_NOT_FOUND_ERROR: 1467, "beperkingsconfig niet gevonden"
  • THROTTLING_CONFIG_NOT_DEPLOYED_ERROR: 1468, "Kan beperkingsconfiguratie niet verwijderen: nog niet geïmplementeerd"

Voorbeelden van fouten

Als u probeert een configuratie te maken op een non-prod sandbox:

{
    "status": 400,
    "error": "{\"code\":1463,\"family\":\"INPUT_OUTPUT_ERROR\",\"message\":\"Operation not allowed on throttling config: non prod sandbox\",\"service\":\"vyg-authoring-api\",\"version\":\"ed87515\",\"context\":\"com.adobe.voyager.service.authoring.restapis.v1_0.ThrottlingConfigService:384\",\"schema\":\"throttlingConfigs$ui-tests\"}",
    "requestId": "5sgnAYXs8mpswwjAFEIaAU2faQYbtyHc"
}

Als deze sandbox niet bestaat:

{
    "status": 500,
    "error": "{\"code\":4000,\"family\":\"INTERNAL_ERROR\",\"message\":\"INTERNAL ERROR\",\"service\":\"vyg-authoring-api\",\"version\":\"ed87515\",\"context\":\"com.adobe.voyager.common.exceptions.ApiErrorException:43\"}",
    "requestId": "04ZJ4e5ki4bYs3lfO17a7hovRGewjvdK"
}

Wanneer u probeert een andere configuratie te maken:

{
    "status": 400,
    "error": "{\"code\":1465,\"family\":\"INPUT_OUTPUT_ERROR\",\"message\":\"Can't create throttling config: only one config allowed per org\",\"service\":\"vyg-authoring-api\",\"version\":\"ed87515\",\"context\":\"com.adobe.voyager.service.authoring.restapis.v1_0.ThrottlingConfigService:108\",\"schema\":\"throttlingConfigs$prod\"}",
    "requestId": "A7ezT8JhOQT4WIAf1Fv7K2wCDA8281qM"
}

Gebruiksscenario's uc

Voor hulp bij het testen en configureren is hier een Postman-verzameling beschikbaar.

Deze Postman-verzameling is opgezet om de Postman Variabele verzameling te delen die is gegenereerd via Adobe I/O Console-integraties > Uitproberen > Downloaden voor Postman, wat een Postman-omgevingsbestand genereert met de geselecteerde integratiewaarden.

Eenmaal gedownload en geüpload naar Postman moet u drie variabelen toevoegen: {JO_HOST},{BASE_PATH} en {SANDBOX_NAME}.

  • {JO_HOST}: Journey Optimizer Gateway-URL
  • {BASE_PATH}: ingangspunt voor de API.
  • {SANDBOX_NAME}: de header x-sandbox-name (bijvoorbeeld 'prod') die overeenkomt met de sandboxnaam waar de API-operaties zullen plaatsvinden. Zie het sandboxoverzicht voor meer informatie.

In het volgende gedeelte vindt u de geordende lijst van Rest-API-aanroepen om het gebruiksscenario uit te voeren.

Gebruiksscenario nr. 1: Nieuwe beperkingsconfiguratie maken en implementeren

  1. list
  2. create
  3. candeploy
  4. deploy

Gebruiksscenario nr. 2: Een beperkingsconfiguratie bijwerken en implementeren die nog niet is geïmplementeerd

  1. list
  2. get
  3. update
  4. candeploy
  5. deploy

Gebruiksscenario nr. 3: Een geïmplementeerde beperkingsconfiguratie deïmplementeren en verwijderen

  1. list
  2. undeploy
  3. delete

Gebruiksscenario nr. 4: Een geïmplementeerde beperkingsconfiguratie verwijderen

In slechts één API-oproep kunt u de configuratie deïmplementeren en verwijderen met behulp van de parameter forceDelete.

  1. list
  2. delete, met parameter forceDelete

Gebruiksscenario nr. 5: Een geïmplementeerde beperkingsconfiguratie bijwerken

NOTE
Het is niet nodig om de configuratie te deïmplementeren alvorens bij te werken
  1. list
  2. get
  3. update

Configuratie levenscyclus op runtimeniveau config

Wanneer een configuratie ge-deïmplementeerd is, wordt deze gemarkeerd als inactief op runtimeniveau en worden lopende gebeurtenissen gedurende 24 uur verwerkt. Deze wordt dan verwijderd in de runtimeservice.

Nadat een configuratie is ge-deïmplementeerd, kunt u de configuratie bijwerken en opnieuw implementeren. Daardoor wordt een nieuwe runtimeconfiguratie gemaakt die in aanmerking wordt genomen bij de toekomstige uitvoering van acties.

Bij het bijwerken van een geïmplementeerde configuratie wordt onmiddellijk rekening gehouden met de nieuwe waarden. De onderliggende systeembronnen worden automatisch aangepast. Dit is optimaal in vergelijking met het deïmplementeren en dan opnieuw implementeren van de configuratie.

Voorbeelden van reacties responses

Maken - POST

{
    "canDeploy": {
        "validationStatus": "ok"
    },
    "createdElement": {
        "name": "throttling-config-external",
        "description": "example of throttling config for an external endpoint",
        "urlPattern": "https://api.example.org/data/2.5/*",
        "methods": [
            "PUT",
            "POST"
        ],
        "maxThroughput": 4000,
        "orgId": "AC202A3A5F615BD30A495FDE@AdobeOrg",
        "sandboxId": "8872a010-f91e-11ea-895c-11ef8f98ba52",
        "sandboxName": "prod",
        "uid": "043a1aea-2dfd-4965-b93a-cb9a1eced0e6",
        "metadata": {
            "createdBy": "dacce1c3-d08b-4862-b434-2a4449c7e642@techacct.adobe.com",
            "createdById": "309F2A46640B0B300A495C83@techacct.adobe.com",
            "lastModifiedBy": "dacce1c3-d08b-4862-b434-2a4449c7e642@techacct.adobe.com",
            "lastModifiedById": "309F2A46640B0B300A495C83@techacct.adobe.com",
            "createdAt": "2023-03-22T10:48:16.099647Z",
            "lastModifiedAt": "2023-03-22T10:48:16.099647Z"
        },
        "state": "created",
        "authoringFormatVersion": "1.0"
    },
    "uid": "043a1aea-2dfd-4965-b93a-cb9a1eced0e6",
    "uri": "/voyager/apis/throttlingConfigs/043a1aea-2dfd-4965-b93a-cb9a1eced0e6",
    "resStatus": "created"
}

Update - PUT

{
    "updatedElement": {
        "_id": "043a1aea-2dfd-4965-b93a-cb9a1eced0e6_8872a010-f91e-11ea-895c-11ef8f98ba52",
        "name": "throttling-config-external -- optional",
        "description": "example of throttling config for an external endpoint -- optional",
        "urlPattern": "https://api.example.org/data/2.5/*",
        "methods": [
            "POST"
        ],
        "maxThroughput": 5000,
        "orgId": "AC202A3A5F615BD30A495FDE@AdobeOrg",
        "sandboxId": "8872a010-f91e-11ea-895c-11ef8f98ba52",
        "sandboxName": "prod",
        "uid": "043a1aea-2dfd-4965-b93a-cb9a1eced0e6",
        "metadata": {
            "createdBy": "dacce1c3-d08b-4862-b434-2a4449c7e642@techacct.adobe.com",
            "createdById": "309F2A46640B0B300A495C83@techacct.adobe.com",
            "lastModifiedBy": "dacce1c3-d08b-4862-b434-2a4449c7e642@techacct.adobe.com",
            "lastModifiedById": "309F2A46640B0B300A495C83@techacct.adobe.com",
            "createdAt": "2023-03-22T10:48:16.099647Z",
            "lastModifiedAt": "2023-03-22T11:39:14.212983Z"
        },
        "state": "updated",
        "authoringFormatVersion": "1.0",
        "hasBeenDeployed": false
    },
    "uid": "043a1aea-2dfd-4965-b93a-cb9a1eced0e6",
    "uri": "/voyager/apis/throttlingConfigs/043a1aea-2dfd-4965-b93a-cb9a1eced0e6",
    "resStatus": "updated",
    "canDeploy": {
        "validationStatus": "ok"
    }
}

Lezen (na update) - GET

{
    "result": {
        "_id": "043a1aea-2dfd-4965-b93a-cb9a1eced0e6_8872a010-f91e-11ea-895c-11ef8f98ba52",
        "name": "throttling-config-external -- optional",
        "description": "example of throttling config for an external endpoint -- optional",
        "urlPattern": "https://api.example.org/data/2.5/*",
        "methods": [
            "POST"
        ],
        "maxThroughput": 5000,
        "orgId": "AC202A3A5F615BD30A495FDE@AdobeOrg",
        "sandboxId": "8872a010-f91e-11ea-895c-11ef8f98ba52",
        "sandboxName": "prod",
        "uid": "043a1aea-2dfd-4965-b93a-cb9a1eced0e6",
        "metadata": {
            "createdBy": "dacce1c3-d08b-4862-b434-2a4449c7e642@techacct.adobe.com",
            "createdById": "309F2A46640B0B300A495C83@techacct.adobe.com",
            "lastModifiedBy": "dacce1c3-d08b-4862-b434-2a4449c7e642@techacct.adobe.com",
            "lastModifiedById": "309F2A46640B0B300A495C83@techacct.adobe.com",
            "createdAt": "2023-03-22T10:48:16.099647Z",
            "lastModifiedAt": "2023-03-22T11:39:14.212983Z"
        },
        "state": "updated",
        "authoringFormatVersion": "1.0",
        "hasBeenDeployed": false
    }
}

Lezen (na implementatie) - GET

{
    "result": {
        "_id": "043a1aea-2dfd-4965-b93a-cb9a1eced0e6_8872a010-f91e-11ea-895c-11ef8f98ba52",
        "orgId": "AC202A3A5F615BD30A495FDE@AdobeOrg",
        "sandboxId": "8872a010-f91e-11ea-895c-11ef8f98ba52",
        "sandboxName": "prod",
        "uid": "043a1aea-2dfd-4965-b93a-cb9a1eced0e6",
        "urlPattern": "https://api.example.org/data/2.5/*",
        "methods": [
            "POST"
        ],
        "maxThroughput": 5000,
        "authoringFormatVersion": "1.0",
        "name": "throttling-config-external -- optional",
        "description": "example of throttling config for an external endpoint -- optional",
        "version": "1.0",
        "state": "deployed",
        "metadata": {
            "createdBy": "dacce1c3-d08b-4862-b434-2a4449c7e642@techacct.adobe.com",
            "createdById": "309F2A46640B0B300A495C83@techacct.adobe.com",
            "createdAt": "2023-03-22T10:48:16.099647Z",
            "lastModifiedBy": "dacce1c3-d08b-4862-b434-2a4449c7e642@techacct.adobe.com",
            "lastModifiedById": "309F2A46640B0B300A495C83@techacct.adobe.com",
            "lastModifiedAt": "2023-03-22T11:39:14.212983Z",
            "lastDeployedBy": "dacce1c3-d08b-4862-b434-2a4449c7e642@techacct.adobe.com",
            "lastDeployedById": "309F2A46640B0B300A495C83@techacct.adobe.com",
            "lastDeployedAt": "2023-03-22T11:46:07.532648Z"
        },
        "hasBeenDeployed": true
    }
}
recommendation-more-help
b22c9c5d-9208-48f4-b874-1cefb8df4d76