Passa al contenuto principale
Adaptive Planning
Ultimo aggiornamento: 2024-05-03
Concetto: API formattate JSON

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 HTTP
    Esempio:
    GET
    ,
    PUT
    o
    PATCH
  • 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.
    Esempio:
    HTTPS://api.adaptiveplanning.com/api/rest/modeling/v1/globosales/sheet/availability
  • Intestazione autorizzazione
    Esempio:
    --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 name
    Un nome del componente, basato su funzionalità come
    modeling
    o
    security
    .
  • version
    La versione del servizio. Versione corrente per tutti i servizi:
    v1
    .
  • tenant
    Il tenant per questo servizio, che indica l'istanza di Adaptive Planning. Utilizzare
    default
    per l'istanza predefinita dell'utente nell'autorizzazione.
  • resource path
    Il percorso della risorsa, utilizzando nomi come
    sheet
    e
    availability
    . Il percorso supporta anche i parametri di query, ad esempio:
    • sheetName
      per specificare il nome di un foglio in Adaptive Planning.
    • columnName
      per specificare il nome di una colonna in un foglio di Adaptive Planning.
    • limit
      per specificare il limite di voci di dati oggetto incluse in una singola risposta.
    • offset
      per 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'