...
Algemeen
...
Webservices can fetch, create and update data in a Workplace Management environment.
The Workplace Management API uses a REST-based framework. Authorization is based on Bearer tokens and a preshared key.Web services are available out of the box and documented in the following parts for some of the most often-used objects. These objects arekunnen gegevens ophalen, aanmaken en bijwerken in een Workplace Management-omgeving.
De Workplace Management API maakt gebruik van een REST-gebaseerd framework. Autorisatie is gebaseerd op Bearer tokens en een vooraf gedeelde sleutel.
Webservices zijn out of the box beschikbaar en gedocumenteerd in de volgende onderdelen voor enkele van de meest gebruikte objecten. Deze objecten zijn:
Masterdata:
OrganizationsOrganisaties
Contact personsContactpersonen
BuildingsGebouwen
AreasGebieden
AssetsActiva
Problem typesSoorten problemen
ProcessesProcessen:
Requests
Corrective work orders
Preventive work orders
Currently, these APIs use generic endpoints. Domain-specific endpoints might be created in the future, as is the case for the reservations domainVerzoeken
Correctieve werkorders
Preventieve werkorders
Momenteel gebruiken deze API's generieke eindpunten. In de toekomst kunnen domeinspecifieke eindpunten worden aangemaakt, zoals het geval is voor het reserveringsdomein.
Expand | ||
---|---|---|
| ||
Pre-conditionsTo be able to use the APIs, some Pre-conditions apply. A (technical) consultant can help with these pre-conditions. A Workplace management environment with the following sub-conditions:
RandvoorwaardenOm de API's te kunnen gebruiken, gelden enkele randvoorwaarden. Een (technisch) consultant kan helpen met deze randvoorwaarden. Een Workplace beheeromgeving met de volgende subvoorwaarden:
|
Expand | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||
Required Vereiste parametersThe following parameters are needed to set up the API calls successfullyDe volgende parameters zijn nodig om de API-oproepen met succes in te stellen:
|
Expand | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||
API OAuth 2.0authorization schemeautorisatieschemaGeneral To obtain access to the resources exposed by the Algemeen Om toegang te krijgen tot de bronnen die worden aangeboden door de Workplace Management REST API, clients must first request a bearer token. The procedure for this is outlined belowmoeten clients eerst een token aanvragen. De procedure hiervoor wordt hieronder beschreven: Grant typeBearer tokens can be obtained using the OAuth grant type “Resource Type subsidie Dragertokens kunnen worden verkregen met het OAuth-subsidietype "Resource Owner Password Credentials.” Even though this grant type suggests that a password is used, this is not the case in this authorization scheme. Instead of a password, a token request message should be encrypted using a preshared AES key, which the endpoint will validate, and a bearer token will be returned when authentication succeeds. Resource data returned by the resource endpoints depends on user access rights to the relevant resources. Token request message The token request message is a JSON message which should contain the following data where terms between brackets should be replaced by their literal values". Hoewel dit toekennings-type suggereert dat een wachtwoord wordt gebruikt, is dit niet het geval in dit autorisatieschema. In plaats van een wachtwoord moet een token aanvraagbericht worden versleuteld met behulp van een vooraf gedeelde AES-sleutel, die het eindpunt zal valideren, en een token zal worden geretourneerd als de authenticatie slaagt. Brongegevens die worden teruggestuurd door de bron eindpunten zijn afhankelijk van de toegangsrechten van gebruikers tot de relevante bronnen. Bericht voor tokenverzoek Het tokenaanvraagbericht is een JSON-bericht dat de volgende gegevens moet bevatten, waarbij termen tussen haakjes moeten worden vervangen door hun letterlijke waarden:
It’s possible to use the literal alias “axxHet is mogelijk om de letterlijke alias "axx::access::admin” as username (without the additional quotes). When doing this, instead of using the actual username of the user requesting the resources, access will be requested on behalf of the default authorized system user linked to the (AES preshared key based) trust relation used by the external application. Encrypting the token request message The token request message should now be encrypted using the preshared AES key, which can be generated in Workplace management using AES-CBC mode, resulting in a ciphertext and an IV (initialization vector). Now build a string using the following formatadmin" als gebruikersnaam te gebruiken (zonder de extra aanhalingstekens). Als je dit doet, wordt in plaats van de werkelijke gebruikersnaam van de gebruiker die de bronnen aanvraagt, toegang aangevraagd namens de standaard geautoriseerde systeemgebruiker die is gekoppeld aan de (op AES-voorgedeelde sleutel gebaseerde) vertrouwensrelatie die wordt gebruikt door de externe applicatie. Het tokenaanvraagbericht versleutelen Het tokenaanvraagbericht moet nu worden versleuteld met de vooraf gedeelde AES-sleutel, die kan worden gegenereerd in Werkplekbeheer met AES-CBC-modus, wat resulteert in een cijfertekst en een IV (initialisatievector). Maak nu een string met het volgende formaat:
This resulting string should be sent in the actual token request as “encrypted-params”; see next paragraph. Create an actual HTTP request for the token endpoint Now to form the HTTP request for the token endpoint, a Maak een echt HTTP-verzoek aan voor het tokeneindpunt Om nu het HTTP-verzoek voor het tokeneindpunt te vormen, moet een
The request should contain at least the following headers (where the terms between brackets should again be replaced by the actual valuesHet verzoek moet ten minste de volgende headers bevatten (waarbij de termen tussen haakjes weer moeten worden vervangen door de werkelijke waarden):
The De request body should contain form URL-encoded data as described in the table below: | |||||||||||
key | value |
toets | waarde |
---|---|
| [encrypted-params] |
When the server grants the authorization request, 200 OK
responses should be received containing the bearer token that can be used for accessing the resource endpoints as long as the token is valid.
An example of the script can be found via the example Postman Collections in the Pre-request script tab, which can be downloaded at the bottom of this documentWanneer de server de autorisatieaanvraag toekent, 200 OK
antwoorden moeten worden ontvangen met het bearer token dat kan worden gebruikt voor toegang tot de resource endpoints zolang het token geldig is.
Een voorbeeld van het script kan worden gevonden via de voorbeeld Postman Verzamelingen in het tabblad Pre-request script, dat onderaan dit document kan worden gedownload.
Expand | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Overview of APIsEvery endpoint consists of a baseOverzicht van API'sElk eindpunt bestaat uit een basis URL: Based on the type of endpoint, the second part of the endpoint URL is determined: Currently, two types of endpoints are available:
EndpointZowel 'server' als 'clientRef' moeten worden ingevuld op basis van de omgevingsparameters. Op basis van het type eindpunt wordt het tweede deel van de URL van het eindpunt bepaald: Momenteel zijn er twee soorten eindpunten beschikbaar:
Eindpunt: Example endpointVoorbeeld eindpunt: https://demotenant.axxerion.com/webservices/demotenant/rest/functions/completereportresult
Eindpunt: Example endpointVoorbeeld eindpunt: https://demotenant.axxerion.com/webservices/demotenant/rest/functions/Asset/710000000172835 The objectName can be either “Asset” or “Request”, the ObjectCategoryId is only relevant for Assets (fixed value for Requests). The options for assets can be fetched via one of the APIs below. The following APIs are currently available out of the box: Get a list of organizationsThis POST call will fetch all the organizations (Own organizations and suppliers) in the tenant with the relevant information per organization. EndpointDe objectnaam kan "Asset" of "Request" zijn, de ObjectCategoryId is alleen relevant voor Assets (vaste waarde voor Requests). De opties voor assets kunnen worden opgehaald via een van de onderstaande API's. De volgende API's zijn momenteel out of the box beschikbaar: Verkrijg een lijst van organisatiesDeze POST-oproep zal alle organisaties (Eigen organisaties en leveranciers) in de tenant ophalen met de relevante informatie per organisatie. Eindpunt: BodyLichaam:
The reference De referentie is mandatory; this determines the correct report to be executedverplicht; deze bepaalt het juiste rapport dat moet worden uitgevoerd: API_ReportRapport_OrganizationsOrganisaties_01 Available filter fields: It is possible to filter the organizations based on an email address: Email Example result: Get a list of personsThis POST call will fetch all the persons in the tenant with the relevant information per person. EndpointDe filtervelden zijn optioneel. Beschikbare filtervelden: Het is mogelijk om de organisaties te filteren op basis van een e-mailadres: E-mail Voorbeeldresultaat: Een lijst van personen krijgenDeze POST-oproep zal alle personen in de huurder ophalen met de relevante informatie per persoon. Eindpunt: BodyLichaam:
The reference De referentie is mandatory; this determines the correct report to be executedverplicht; deze bepaalt het juiste rapport dat moet worden uitgevoerd: API_ReportRapport_ContactsContacten_01 Available filter fields: It is possible to filter the persons based on an email address: Email Example result: Get a list of buildingsThis POST call will fetch all the buildings in the tenant with the relevant information per building. EndpointDe filtervelden zijn optioneel. Beschikbare filtervelden: Het is mogelijk om de personen te filteren op basis van een e-mailadres: E-mail Voorbeeldresultaat: Verkrijg een lijst met gebouwenDeze POST-oproep zal alle gebouwen in de huurder ophalen met de relevante informatie per gebouw. Eindpunt: BodyLichaam:
De referentie is mandatory; this determines the correct report to be executedverplicht; deze bepaalt het juiste rapport dat moet worden uitgevoerd: API_Report_Properties_01 Voorbeeldresultaat: This POST call will fetch all the areas in the tenant with the relevant information per area. EndpointGet a list of areasEen lijst met gebiedenDeze POST-oproep zal alle gebieden in de huurder ophalen met de relevante informatie per gebied. Eindpunt: BodyLichaam:
The reference De referentie is mandatory; this determines the correct report to be executedverplicht; deze bepaalt het juiste rapport dat moet worden uitgevoerd: API_ReportRapport_Areas_01 Available filter fields: It is possible to filter the areas based on a specific building: Property Example result: Get a list of assetsThis POST call will fetch all the assets in the tenant with the relevant information per asset. EndpointDe filtervelden zijn optioneel. Beschikbare filtervelden: Het is mogelijk om de gebieden te filteren op basis van een specifiek gebouw: Eigendom Voorbeeldresultaat: Een lijst met activa ophalenDeze POST-oproep zal alle middelen in de huurder ophalen met de relevante informatie per middel. Eindpunt: BodyLichaam:
The reference De referentie is mandatory; this determines the correct report to be executedverplicht; deze bepaalt het juiste rapport dat moet worden uitgevoerd: API_Report_Asset_01 Available filter fields: It is possible to filter the assets based on a specific building: Property Example result: Get a list of asset categoriesThis POST call will fetch all the asset categories in the tenant. The Id of an asset category can be used to create a new asset in the desired category (See Create an Asset). E.g., Car, Bike, Coffee machine. EndpointDe filtervelden zijn optioneel. Beschikbare filtervelden: Het is mogelijk om de activa te filteren op basis van een specifiek gebouw: Gebouw Voorbeeldresultaat: Een lijst met activacategorieën opvragenDeze POST-oproep zal alle activacategorieën in de huurder ophalen. De Id van een activacategorie kan worden gebruikt om een nieuwe asset aan te maken in de gewenste categorie (Zie Een bedrijfsmiddel maken). Bijv. auto, fiets, koffiezetapparaat. Eindpunt: BodyLichaam:
reference De referentie is mandatory; this determines the correct report to be executedverplicht; deze bepaalt het juiste rapport dat moet worden uitgevoerd: API_Report_Asset_Categories_01 This call does not support any additional filter fields Example resultDeze oproep ondersteunt geen extra filtervelden Voorbeeldresultaat: Get a list of requestsEen lijst met verzoeken ophalen.This POST call will fetch all the requests in the tenant with the relevant information per request. EndpointDeze POST-oproep zal alle verzoeken in de tenant ophalen met de relevante informatie per verzoek. Eindpunt: BodyLichaam:
The reference De referentie is mandatory; this determines the correct report to be executedverplicht; deze bepaalt het juiste rapport dat moet worden uitgevoerd: API_Report_Requests_01 Available filter fields: It is possible to filter the requests based on the create times: CreatedSince and CreatedUntil Beschikbare filtervelden: Het is mogelijk om de verzoeken te filteren op basis van de aanmaaktijden: AangemaaktSinds en AangemaaktTot The following filter fields can also be used (not shown in the body aboveDe volgende filtervelden kunnen ook worden gebruikt (niet weergegeven in de bovenstaande body):
Example result: Get a list of problem typesThis POST call will fetch all the problem types (A problem type is used to determine the type of request and which service group will be assigned to handle the request) in the tenant with the relevant information per problem type. Endpoint
Voorbeeldresultaat: Een lijst met probleemtypen opvragenDeze POST-oproep haalt alle probleemtypes op (een probleemtype wordt gebruikt om het type verzoek te bepalen en welke servicegroep wordt toegewezen om het verzoek af te handelen) in de tenant met de relevante informatie per probleemtype. Eindpunt: BodyLichaam:
reference De referentie is mandatory; this determines the correct report to be executedverplicht; deze bepaalt het juiste rapport dat moet worden uitgevoerd: API_Report_ProblemTypes_01
Voorbeeldresultaat: Get a list of members per service groupThis POST call will fetch all the contacts in a service group (A service group is used in a problem type and will be used to determine which group will be assigned to handle the request) in the tenant with the relevant information per service group. EndpointEen lijst met leden per servicegroep opvragenDeze POST-oproep zal alle contactpersonen in een servicegroep ophalen (Een servicegroep wordt gebruikt in een probleemtype en zal worden gebruikt om te bepalen welke groep zal worden toegewezen om het verzoek te behandelen) in de tenant met de relevante informatie per servicegroep. Eindpunt: BodyLichaam:
reference De referentie is mandatory; this determines the correct report to be executedverplicht; deze bepaalt het juiste rapport dat moet worden uitgevoerd: API_Report_ServiceGroupMembers_01 This call does not support any additional filter fields Example resultDeze oproep ondersteunt geen extra filtervelden Voorbeeldresultaat: This POST call will fetch all the corrective work orders (work orders created on a request) in the tenant with the relevant information per work order. EndpointGet a list of corrective work ordersEen lijst met corrigerende werkorders krijgenDeze POST-oproep haalt alle corrigerende werkopdrachten op (werkopdrachten die zijn aangemaakt op een verzoek) in de huurder met de relevante informatie per werkopdracht. Eindpunt: BodyLichaam:
The reference De referentie is mandatory; this determines the correct report to be executedverplicht; deze bepaalt het juiste rapport dat moet worden uitgevoerd: API_Report_Corrective_WorkOrders_01 Available filter fields: It is possible to filter the work orders based on the create times: CreatedSince and CreatedUntil Beschikbare filtervelden: Het is mogelijk om de werkorders te filteren op basis van de aanmaaktijden: AangemaaktSinds en AangemaaktTot The following filter fields can also be used (not shown in the body aboveDe volgende filtervelden kunnen ook worden gebruikt (niet weergegeven in de bovenstaande body):
Example result: Get a list of preventive work ordersThis POST call will fetch all the preventive work orders (work orders created via a maintenance schedule) in the tenant with the relevant information per work order. Endpoint
Voorbeeldresultaat: Een lijst met preventieve werkorders opvragenDeze POST-oproep zal alle preventieve werkorders (werkorders aangemaakt via een onderhoudsschema) in de huurder ophalen met de relevante informatie per werkorder. Eindpunt: BodyLichaam:
The reference De referentie is mandatory; this determines the correct report to be executedverplicht; deze bepaalt het juiste rapport dat moet worden uitgevoerd: API_Report_Corrective_WorkOrders_01 Available filter fields: It is possible to filter the work orders based on the create times: CreatedSince and CreatedUntil Beschikbare filtervelden: Het is mogelijk om de werkorders te filteren op basis van de aanmaaktijden: AangemaaktSinds en AangemaaktTot The following filter fields can also be used (not shown in the body above):
Example result: Create an assetThis Post call is used to create a new asset Endpoint
Voorbeeldresultaat: Activa makenDeze postoproep wordt gebruikt om een nieuw object te maken Eindpunt: The De '{{assetCategory}' in the endpoint URL should be set to an asset category id value (Fetched via the get a list of Asset categories call)Body with example valuesde URL van het eindpunt moet worden ingesteld op de id-waarde van een activacategorie (opgehaald via de een lijst met activacategorieën krijgen oproep) Body met voorbeeldwaarden:
The following fields can be set via the body (all optionalDe volgende velden kunnen worden ingesteld via de body (allemaal optioneel):
Het antwoord is de Id-waarde van de nieuw aangemaakte asset: Create a requestThis Post call is used to create a new request EndpointEen verzoek makenDeze postoproep wordt gebruikt om een nieuw verzoek te maken Eindpunt: Body with example valuesmet voorbeeldwaarden:
The following fields can be set via the body (all optionalDe volgende velden kunnen worden ingesteld via de body (allemaal optioneel): This requires the following endpoint
The response will be the Id value of the newly created request Updating an existing objectVia a PUT call, it is possible to update one of the objects above.
Het antwoord zal de Id-waarde van het nieuw aangemaakte verzoek zijn Een bestaand object bijwerkenVia een PUT-oproep is het mogelijk om een van de bovenstaande objecten bij te werken. Hiervoor is het volgende eindpunt nodig: The De {ObjecType} should be the Name of the object type. E.g ‘Asset' or 'Request’. De body van de aanroep moet de relevante velden bevatten om bij te werken. Zie de voorbeelden hierboven in de aanroepen om te creëren. |
Expand | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Postman Postbode projectThe following links contain an example Postman project and a (dummy) environment based on the API calls described above. The environment should be filled in based on the environment parameters actually to useDe volgende links bevatten een voorbeeld Postbode project en een (dummy) omgeving gebaseerd op de API-aanroepen die hierboven zijn beschreven. De omgeving moet worden ingevuld op basis van de daadwerkelijk te gebruiken omgevingsparameters.
|