Concept: API's met JSON-indeling
Slechts een beperkt aantal REST-API's voor Adaptive Planning kan de JSON-indeling gebruiken voor het verzenden en ophalen van gegevens uit Adaptive Planning. Meer API's zullen in toekomstige releases de JSON-indeling gebruiken.
JSON-aanvragen
Voor elke JSON-aanvraag is het volgende vereist:
- HTTP-werkwoord of -methode.Voorbeeld:GET,PUT, ofPATCH
- URL-eindpunt.Als uw instance gebruikmaakt van niet op de VS gebaseerde regionale verificatie, verschillen uw autorisatie-URL's en API-eindpunten op basis van uw regio. Zie Referentie: regionale verificatie-URL's.Voorbeeld:HTTPS://api.adaptiveplanning.com/api/rest/modeling/v1/globosales/sheet/availability
- AutorisatiekopVoorbeeld:--header 'Authorization: Basic c5RldmVjQLdsb2JvLmNabTpjaGFuZ2VtZQ=='
HTTP-werkwoorden of -methoden
Welke methoden of werkwoorden beschikbaar zijn, is afhankelijk van de service en resource:
Methode | Omschrijving |
|---|---|
GET | Hiermee wordt een verzameling gegevens of één object opgehaald. |
POST | Hiermee maakt u één gegevensinstance met opgegeven gegevens. |
PATCH | Bestaande gegevens worden gedeeltelijk bijgewerkt. |
PUT | Hiermee worden bestaande gegevens bijgewerkt en de bestaande gegevens vervangen door de opgegeven gegevens in de hoofdtekst van de aanvraag. |
DELETE | Hiermee wordt een bestaande gegevensinstance verwijderd. |
URL-eindpunt
Als uw instance gebruikmaakt van niet op de VS gebaseerde regionale verificatie, verschillen uw autorisatie-URL's en API-eindpunten op basis van uw regio. Zie Referentie: regionale verificatie-URL's.
https://api.adaptiveplanning.com/rest/<service name>/<version>/<tenant>/<resource path>
- service nameEen componentnaam, op basis van functionaliteit zoalsmodeling, ofsecurity.
- versionDe versie van de service. Huidige versie voor alle services:v1.
- tenantDe tenant voor deze service, die de Adaptive Planning-instance aangeeft. Gebruikendefaultvoor de standaardinstance van de gebruiker in de autorisatie.
- resource pathHet pad naar de resource, met behulp van zelfstandige naamwoorden zoalssheetandavailability. Het pad ondersteunt ook queryparameters, zoals:
- sheetNameom de naam van een blad in Adaptive Planning op te geven.
- columnNameom de naam van een kolom in een Adaptive Planning-blad op te geven.
- limitom de limiet voor objectgegevensinvoer in één antwoord op te geven.
- offsetom de verschuiving op te geven voor het eerste object in een verzameling dat in het antwoord moet worden opgenomen.
Voorbeeld:
https://api.adaptiveplanning.com/api/rest/modeling/v1/globosales/sheet/availability?sheetName=Expense Cube&columnName=Level&columnType=Level
Voorbeeld: POST-aanvraag met JSON-hoofdtekst
curl --location --request POST 'https://api.adaptiveplanning.com/api/rest/modeling/v1/default/sheet/availability?sheetName=Sales Cube&columnName=account&columnType=Account' \ --header 'Authorization: Basic c5RldmVjQLdsb2JvLmNabTpjaGFuZ2VtZQ==' \ --header 'Content-Type: application/json' \ --data-raw '[ { "name": "Discount Percent", "code": "SalesCube.DiscountPercent", "accountGroup": false, "available": true } ]'
Inningen
Resources vertegenwoordigen doorgaans een verzameling bedrijfsobjecten uit:
Adaptive Planning
geretourneerd als een JSON-verzameling. De verzameling kan in ontwikkelingsframeworks worden gebruikt om lijsten met bedrijfsobjecten samen te stellen. Een specifiek object uit de verzameling is toegankelijk via een ID.De sorteervolgorde van objecten in een verzameling wordt ingesteld op
Adaptive Planning
en kan niet worden geconfigureerd.Het pagineren van collecties wordt beheerd door twee optionele queryparameters: limiet en verschuiving.
Queryparameter | Omschrijving |
|---|---|
limiet | De limiet van objectgegevensinvoer in één antwoord. De standaardwaarde is 20 en het maximum is 100. |
verschuiving | De verschuiving naar het eerste object in een verzameling dat in het antwoord moet worden opgenomen. De standaardwaarde is 0. |
Voorbeeldaanvraag met limiet en tegenboeking
Met het voorbeeld wordt een verzameling gebruikersinstances opgehaald met de
instanceCode
van GLOBO
.@GET @PATH("/users/instances?instanceCode=GLOBO&limit=20&offset=0") @Produces(MediaType.APPLICATION_JSON) public List<User> getUsers(@PathParam("instanceCode") String instanceCode,@PathParam("limit")int limit,@PathParam("offset")int offset)
Voorbeeldantwoord met limiet en verschuiving
{ "total": 25, "link": { "next": "https://api.adaptiveplanning.com/api/rest/security/v1/default/users/instances?instanceCode=GLOBO&offset=4&limit=2", "previous": "https://api.adaptiveplanning.com/api/rest/security/v1/default/users/instances?instanceCode=GLOBO&offset=0&limit=2" }, "users": [ { "userId": 14, "userGuid": "474C4F424F000000000000000100000E", "userName": "asiaboss@globo.com", "instances": [ { "code": "GLOBO", "default": true } ] }, { "userId": 21, "userGuid": "474C4F424F0000000000000001000015", "userName": "Bob@globo.com", "instances": [ { "code": "GLOBOSALES" }, { "code": "GLOBOSUB" }, { "code": "GLOBO", "default": true } ] } ] } Note: -Default offset = 0 and limit = 500
Referentietypen, verificatie en autorisatie
Alle API-aanvragen zijn staatloze aanvragen met een enkele actie. De gebruiker moet bij elke afzonderlijke aanroep worden geverifieerd, dus het is uitgesloten dat een indringer een bestaande webservicesessie probeert te kapen.
Als u een gebruiker verifieert in een API-aanvraag, wordt er geen permanente sessie voor deze gebruiker gemaakt. Voor elke afzonderlijke webserviceaanroep moet de gebruiker afzonderlijk worden geverifieerd.
De
Adaptive Planning
API's met JSON-indeling ondersteunen zowel de methoden Basic als Token Based Authentication (TBA). Adaptive Planning
ondersteunt echte REST-API's in JSON-indeling met autorisatie aangegeven in de aanvraagkop en niet in de hoofdtekst van de aanvraag, zoals XML-API's. Zie Berichtindelingen voor aanvragen en antwoorden en API-aanvragen voor Adaptive Planning maken met Workday-referenties voor voorbeelden van XML-API's.Basisverificatie
Basisverificatie gebruikt met base64 gecodeerde gebruikersnaam en wachtwoord in de verificatiekop.
Voorbeeld:
'Authorization': 'Basic <insert base64 encoded string>'
Voorbeeld:
xyz@demo.com:password
codeert naar eHl6QGRlbW8uY29tOnBhc3N3b3Jk
Verificatie op basis van tokens (TBA)
Als u gebruikers van Workday naar Adaptive Planning synchroniseert, moet u verificatiemethoden op basis van tokens gebruiken. Volg de stappen in API-aanvragen voor Adaptive Planning maken met Workday-referentiesom uw token op te halen. Nadat u uw token hebt opgehaald, geeft u deze door in de kop.
Voorbeeld:'Authorization': 'Bearer <insert token here>'
Voorbeeld: '
Authorization: Bearer eyJjdHkiOiJ0ZXh0L3BsYWluIiwiYWxnIjoiSFMyNTYifQ.eyJsb2dpbl9pZCI6InN0ZXZlY0BheWdsb2JvLmNvbSIsIm5iZiI6MTU4NjEzMDA2NywibXVsdGlfdXNlIjoiMCIsImlzX2F1dGgiOiIxIiwiZXhwIjoxODg2MTMwMTg3LCJpYXQiOjE2MDM5NDYwMjEsImp0aSI6IjM0YzFkZDY2LTY2MTMtNDk0Ny05MjFhLTliZDQ2ZDVmZDkwNyJ9.FZnLHGQ3dNfpzvW-A9ILi53z6YLGNNI45Mlc-4NT3As'