Konzept: Mit JSON formatierte APIs
Nur eine begrenzte Anzahl von Adaptive Planning REST-APIs 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.Abhängig vom Standort Ihrer Adaptive Planning Instanz können Ihre Autorisierungs-URLs und API-Endpunkte variieren. Weitere Informationen finden Sie unterURLs und IP-Adressen für die Adaptive Planning Authentifizierung .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 Instanz 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 Instanz. |
URL-Endpunkt
Abhängig vom Standort Ihrer Adaptive Planning Instanz können Ihre Autorisierungs-URLs und API-Endpunkte variieren. Weitere Informationen finden Sie unterURLs und IP-Adressen für die Adaptive Planning Authentifizierung .
https://api.adaptiveplanning.com/rest/<service name>/<version>/<tenant>/<resource path>
- service nameEinen Komponente , der auf Funktionalität wie basiertmodelingodersecurity.
- versionDie Version des Service. Aktuelle Version für alle Services:v1.
- tenantDer Mandant für diesen Service, indem Sie die Adaptive Planning Instanz angeben. Verwendendefaultfür die Instanz des Benutzers in der Autorisierung.
- resource pathDer Pfad zur Ressource unter Verwendung von Nomen wiesheetundavailability. Der Pfad unterstützt auch Abfrage , z. B.:
- sheetName, um den Namen eines Tabellenblatt 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 optional Abfrage Grenzwert und Zeitversatz 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 Zeitversatz 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
vonGLOBO
.@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 zu erhalten, führen Sie die Schritte unter Adaptive Planning API-Anforderungen mit Workday -Zugangsdaten durchführen aus. Nachdem Sie Ihr Token erhalten haben, übergeben Sie es im Header.
Beispiel:'Autorisierung': 'Bearer <hier Token einfügen>'
Beispiel: '
Authorization: Bearer eyJjdHkiOiJ0ZXh0L3BsYWluIiwiYWxnIjoiSFMyNTYifQ.eyJsb2dpbl9pZCI6InN0ZXZlY0BheWdsb2JvLmNvbSIsIm5iZiI6MTU4NjEzMDA2NywibXVsdGlfdXNlIjoiMCIsImlzX2F1dGgiOiIxIiwiZXhwIjoxODg2MTMwMTg3LCJpYXQiOjE2MDM5NDYwMjEsImp0aSI6IjM0YzFkZDY2LTY2MTMtNDk0Ny05MjFhLTliZDQ2ZDVmZDkwNyJ9.FZnLHGQ3dNfpzvW-A9ILi53z6YLGNNI45Mlc-4NT3As'