Konzept: Mit JSON formatierte APIs
Nur eine begrenzte Anzahl von REST-APIs von Adaptive Planning kann das JSON-Format zum Übermitteln und Abrufen von Daten aus Adaptive Planning verwenden. In zukünftigen Versionen werden weitere APIs das JSON-Format verwenden.
JSON-Anforderungen
Jede JSON-Anforderung erfordert Folgendes:
- HTTP-Verb oder -Methode.Beispiel:GET,PUToderPATCH
- URL-Endpunkt.If your instance uses non-US based, regional authentication, then your authorization URLs and API endpoints vary based on your region. See Reference: Regional Authentication URLs.Beispiel:HTTPS://api.adaptiveplanning.com/api/rest/modeling/v1/globosales/sheet/availability
- Autorisierungs-HeaderBeispiel:--header 'Authorization: Basic c5RldmVjQLdsb2JvLmNabTpjaGFuZ2VtZQ=='
HTTP-Verben oder -Methoden
Die verfügbaren Methoden oder Verben variieren je nach Service und Ressource:
Methode | Beschreibung |
|---|---|
GET | Ruft eine Sammlung von Daten oder ein einzelnes Objekt ab. |
POST | Erstellt eine einzelne Dateninstanz mit den angegebenen Daten. |
PATCH | Aktualisiert teilweise vorhandene Daten. |
PUT | Aktualisiert vorhandene Daten und ersetzt die vorhandenen Daten durch die angegebenen Daten im Anforderungstext. |
DELETE | Löscht eine vorhandene Dateninstanz. |
URL-Endpunkt
If your instance uses non-US based, regional authentication, then your authorization URLs and API endpoints vary based on your region. See Reference: Regional Authentication URLs.
https://api.adaptiveplanning.com/rest/<service name>/<version>/<tenant>/<resource path>
- service nameEinen Komponentennamen, der auf Funktionalität wie basiertmodeling,securityoderreport.
- versionDie Version des Service. Aktuelle Version für alle Services:v1.
- tenantDer Mandant für diesen Service, indem die Adaptive Planning-Instanz angegeben wird. Verwendendefaultfür die Standardinstanz des Benutzers in der Autorisierung.
- resource pathDer Pfad zur Ressource unter Verwendung von Nomen wiesheetundavailability. Der Pfad unterstützt auch Abfrageparameter, z. B.:
- sheetNameum den Namen eines Tabellenblatts in Adaptive Planning anzugeben.
- columnName, um den Namen einer Spalte in einem Tabellenblatt aus Adaptive Planning anzugeben.
- limitum den Grenzwert für die in einer einzelnen Antwort enthaltenen Objektdateneingaben anzugeben.
- offset, um den Zeitversatz zum ersten Objekt in einer Sammlung anzugeben, das in die Antwort aufgenommen werden soll.
Beispiel:
https://api.adaptiveplanning.com/api/rest/modeling/v1/globosales/sheet/availability?sheetName=Expense Cube&columnName=Level&columnType=Level
Beispiel: POST-Anforderung mit JSON-Text
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 } ]'
Einzug
Ressourcen stellen in der Regel eine Sammlung von Geschäftsobjekten aus dar
Adaptive Planning
als JSON-Sammlung zurückgegeben wird. Die Sammlung kann in Entwicklungs-Frameworks verwendet werden, um Listen der Geschäftsobjekte zu erstellen. Auf ein bestimmtes Objekt aus der Sammlung wird über einen ID zugegriffen.Die Sortierreihenfolge der Objekte in einer Sammlung wird von festgelegt
Adaptive Planning
und ist nicht konfigurierbar.Das Paging von Einzügen wird durch die beiden optionalen Abfrageparameter "Limit" und "Offset" gesteuert.
Abfrageparameter | Beschreibung |
|---|---|
limit | Den Grenzwert für die Objektdateneingaben, die in einer einzelnen Antwort enthalten sind. Der Standardwert ist 20 und der Höchstwert ist 100. |
offset | Der Offset zum ersten Objekt in einer Sammlung, das in die Antwort aufgenommen werden soll. Der Standardwert ist 0. |
Beispielanforderung mit Grenzwert und Zeitversatz
Das Beispiel ruft eine Sammlung von Benutzerinstanzen mit ab
instanceCode
von 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)
Beispielantwort mit Grenzwert und Zeitversatz
{ "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
Zugangsdatenarten, Authentifizierung und Autorisierung
Alle API-Anforderungen sind statuslose Anforderungen mit einer Aktion. Der Benutzer muss bei jedem separaten Aufruf authentifiziert werden, damit ein Eindringling nicht versucht, eine vorhandene Webservice-Sitzung zu umgehen.
Die Authentifizierung eines Benutzers in einer API-Anforderung erstellt keine persistente Sitzung für diesen Benutzer. Jeder separate Webservice-Aufruf muss seinen Benutzer separat authentifizieren.
Die
Adaptive Planning
Mit JSON formatierte APIs unterstützen sowohl die Methode der einfachen als auch der Token-basierten Authentifizierung (TBA). Adaptive Planning
unterstützt reale REST-APIs im JSON-Format, deren Autorisierung im Anforderungs-Header und nicht im Anforderungstext wie bei XML-APIs angegeben wird. Beispiele für XML-APIs finden Sie unter Request and Response Message Formats und Create Adaptive Planning API Requests with Workday Credentials .Einfache Authentifizierung
Die Basisauthentifizierung verwendet Base64-codierten Benutzernamen und Kennwort im Authentifizierungs-Header.
Beispiel:
'Authorization': 'Basic <insert base64 encoded string>'
Beispiel:
xyz@demo.com:password
codiert in eHl6QGRlbW8uY29tOnBhc3N3b3Jk
Token-basierte Authentifizierung (TBA)
Wenn Sie Benutzer aus Workday mit Adaptive Planning synchronisieren, müssen Sie Token-basierte Authentifizierungsmethoden verwenden. Um Ihr Token abzurufen, führen Sie die Schritte unter Stellen Sie eine Adaptive Planning-API-Anforderung mit Workday-Zugangsdaten aus. Nachdem Sie Ihr Token erhalten haben, geben Sie es im Header weiter.
Beispiel:'Autorisierung': 'Bearer <hier Token einfügen>'
Beispiel: '
Authorization: Bearer eyJjdHkiOiJ0ZXh0L3BsYWluIiwiYWxnIjoiSFMyNTYifQ.eyJsb2dpbl9pZCI6InN0ZXZlY0BheWdsb2JvLmNvbSIsIm5iZiI6MTU4NjEzMDA2NywibXVsdGlfdXNlIjoiMCIsImlzX2F1dGgiOiIxIiwiZXhwIjoxODg2MTMwMTg3LCJpYXQiOjE2MDM5NDYwMjEsImp0aSI6IjM0YzFkZDY2LTY2MTMtNDk0Ny05MjFhLTliZDQ2ZDVmZDkwNyJ9.FZnLHGQ3dNfpzvW-A9ILi53z6YLGNNI45Mlc-4NT3As'