Concetto: API formattate JSON
Solo un numero limitato di API REST di Adaptive Planning può utilizzare il formato JSON per inoltrare e ottenere dati da Adaptive Planning. Altre API utilizzeranno il formato JSON nelle versioni future.
Richieste JSON
Ogni richiesta JSON richiede:
- Verbo o metodo HTTPEsempio:GET,PUToPATCH
- Endpoint URLSe l'istanza utilizza un'autenticazione regionale non statunitense, gli URL di autorizzazione e gli endpoint API variano in base all'area geografica. Consultare Riferimenti: URL di autenticazione internazionali.Esempio:HTTPS://api.adaptiveplanning.com/api/rest/modeling/v1/globosales/sheet/availability
- Intestazione autorizzazioneEsempio:--header 'Authorization: Basic c5RldmVjQLdsb2JvLmNabTpjaGFuZ2VtZQ=='
Verbi o metodi HTTP
I metodi o i verbi disponibili variano a seconda del servizio e della risorsa:
Metodo | Descrizione |
|---|---|
GET | Recupera una raccolta di dati o un singolo oggetto. |
POST | Crea una singola istanza di dati con i dati specificati. |
PATCH | Aggiorna parzialmente i dati esistenti. |
PUT | Aggiorna i dati esistenti e sostituisce i dati esistenti con i dati specificati nel corpo della richiesta. |
DELETE | Elimina un'istanza di dati esistente. |
Endpoint URL
Se l'istanza utilizza un'autenticazione regionale non statunitense, gli URL di autorizzazione e gli endpoint API variano in base all'area geografica. Consultare Riferimenti: URL di autenticazione internazionali.
https://api.adaptiveplanning.com/rest/<service name>/<version>/<tenant>/<resource path>
- service nameUn nome del componente, basato su funzionalità comemodelingosecurity.
- versionLa versione del servizio. Versione corrente per tutti i servizi:v1.
- tenantIl tenant per questo servizio, che indica l'istanza di Adaptive Planning. Utilizzaredefaultper l'istanza predefinita dell'utente nell'autorizzazione.
- resource pathIl percorso della risorsa, utilizzando nomi comesheeteavailability. Il percorso supporta anche i parametri di query, ad esempio:
- sheetNameper specificare il nome di un foglio in Adaptive Planning.
- columnNameper specificare il nome di una colonna in un foglio di Adaptive Planning.
- limitper specificare il limite di voci di dati oggetto incluse in una singola risposta.
- offsetper specificare lo scostamento rispetto al primo oggetto di una raccolta da includere nella risposta.
Esempio:
https://api.adaptiveplanning.com/api/rest/modeling/v1/globosales/sheet/availability?sheetName=Expense Cube&columnName=Level&columnType=Level
Esempio: richiesta POST con corpo JSON
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 } ]'
Raccolte
Le risorse rappresentano in genere una raccolta di oggetti business da cui
Adaptive Planning
restituito come raccolta JSON. La raccolta può essere utilizzata nei framework di sviluppo per creare elenchi di oggetti business. È possibile accedere a un oggetto specifico della raccolta tramite un identificativo.L'ordinamento degli oggetti in una raccolta è impostato da
Adaptive Planning
e non è configurabile.Il paging delle raccolte è controllato da due parametri di query facoltativi, limit e offset.
Parametro query | Descrizione |
|---|---|
limit | Il limite di voci di dati oggetto incluse in una singola risposta. Il valore predefinito è 20 e il massimo è 100. |
offset | L'offset rispetto al primo oggetto di una raccolta da includere nella risposta. Il valore predefinito è 0. |
Richiesta di esempio con limite e compensazione
L'esempio recupera una raccolta di istanze utente con
instanceCode
di 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)
Risposta di esempio con limite e compensazione
{ "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
Tipi di credenziali, autenticazione e autorizzazione
Tutte le richieste API sono richieste con azione singola senza stato. L'utente deve essere autenticato a ogni chiamata separata, quindi non è possibile che un intruso tenti di dirottare una sessione del servizio Web esistente.
L'autenticazione di un utente in una richiesta API non crea una sessione permanente per questo utente. Ogni chiamata al servizio Web separata deve autenticare il proprio utente separatamente.
Il
Adaptive Planning
Le API in formato JSON supportano sia i metodi Basic che Token Based Authentication (TBA). Adaptive Planning
supporta le vere API REST in formato JSON con l'autorizzazione indicata nell'intestazione della richiesta e non nel corpo della richiesta, come le API XML. Consultare Formati dei messaggi di richiesta e risposta e Creazione di richieste API Adaptive Planning con credenziali Workday per esempi di API XML.Autenticazione di base
L'autenticazione di base utilizza nome utente e password con codifica base64 nell'intestazione di autenticazione.
Esempio:
'Authorization': 'Basic <insert base64 encoded string>'
Esempio:
xyz@demo.com:password
codifica in eHl6QGRlbW8uY29tOnBhc3N3b3Jk
Autenticazione basata su token (TBA)
Se si sincronizzano gli utenti da Workday ad Adaptive Planning, è necessario utilizzare i metodi di autenticazione basata su token. Per ottenere il token, seguire la procedura in Effettuare richieste API Adaptive Planning con credenziali Workday. Dopo aver ottenuto il token, passarlo nell'intestazione.
Esempio: 'Autorizzazione': 'Bearer <inserire token qui>'
Esempio: "
Authorization: Bearer eyJjdHkiOiJ0ZXh0L3BsYWluIiwiYWxnIjoiSFMyNTYifQ.eyJsb2dpbl9pZCI6InN0ZXZlY0BheWdsb2JvLmNvbSIsIm5iZiI6MTU4NjEzMDA2NywibXVsdGlfdXNlIjoiMCIsImlzX2F1dGgiOiIxIiwiZXhwIjoxODg2MTMwMTg3LCJpYXQiOjE2MDM5NDYwMjEsImp0aSI6IjM0YzFkZDY2LTY2MTMtNDk0Ny05MjFhLTliZDQ2ZDVmZDkwNyJ9.FZnLHGQ3dNfpzvW-A9ILi53z6YLGNNI45Mlc-4NT3As'