Connector aanroepen via Profit Rest Service
Een externe applicatie roept een Connector aan op basis van een token.
Gebruik de volgende algemene URL's.De REST service moet altijd via https worden aangeroepen.
Let op:
Je vindt alle endpoints voor connectoren op de centrale pagina URL's van REST Services.
Let op:
Vanaf Profit 6 is het bij een aanroep van de AFAS Api (REST en SOAP) verplicht om de AFAS-token mee te geven in Base64-formaat via de Authorization HTTP-header.
Deze methode wordt al lange tijd aanbevolen door AFAS, maar is met ingang van Profit 6 verplicht. Als je de token na de overgang op Profit 6 aanbiedt in een onjuist formaat (meestal is dit plain text) dan zal dit resulteren in een 500-foutmelding.
Vooralsnog blijft het in een SOAP-bericht nog mogelijk om de token mee te geven in de Body. Deze methode wordt sterk ontraden en zal op termijn worden afgeschaft.
Inhoud |
Algemeen
Om data op te halen uit Profit met een externe applicatie heb je het volgende nodig. Zie ook de onderstaande code voorbeelden.
- URL om aan te roepen
De URL kan je samenstellen door via de testtooling op connect.afas.nl de GetConnector uit te voeren. Hier kan je direct filters, sortering en skip/take in de url toevoegen.
- Header key;
De key van de header is altijd: Authorization.
- Header value
De Value van de header begint altijd met: AfasToken + de token als Base64-string
- Script waarmee je de Base64-string via Chrome DevTools Console kan genereren:
$('input').value = "AfasToken " + window.btoa("<token><version>1</version><data> vul hier je token in </data></token>")
REST connector aanroepen met AFAS Connect
- Start https://connect.afas.nl en log in.
- Ga naar: REST/JSON / GetConnectors.
- Gebruik de stappen voor:
Connector aanroepen code-voorbeelden
Deze voorbeelden zijn gemaakt met Windows Powershell. AFAS verleent geen support op dit onderdeel. In de aanroep moet de token geconverteerd worden naar een base64-string.
GetConnector aanroepen:
$token = '<token><version>1</version><data>0E6824699F40129E254DB96441233E32F13454355184E5A24F8E3C0DFA4F</data></token>'
$encodedToken = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($token))
$authValue = "AfasToken $encodedToken"
$Headers = @{
Authorization = $authValue
}
$url = 'https://......./Profitrestservices/connectors/Profit_Article'
$file = '\\yourserver\volume\folder\Getconnector.json'
Invoke-WebRequest -Uri $url -OutFile $file -Headers $Headers
Meta-info ophalen:
$token = '<token><version>1</version><data>0E6824612043AA9E254DB961223DD33E32F14943D93184E5A234553C0DFA4F</data></token>'
$encodedToken = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($token))
$authValue = "AfasToken $encodedToken"
$Headers = @{
Authorization = $authValue
}
Invoke-WebRequest -Uri 'https://....../Profitrestservices//metainfo' -Headers $Headers