Connector aanroepen via Profit Rest Service

Let op:

De AFAS-token in de header van de connector-call moet altijd Base64-encoded verstuurd worden. Dit geldt voor zowel REST/JSON als SOAP/XML. Als de token niet Base64-encoded is in de header, zal er een foutmelding worden gegeven.

Hierop geldt één uitzondering: bij SOAP is het ook mogelijk om de token in de SOAP-body mee te geven. In dat geval blijft alles gewoon werken zonder dat Base64-encoding vereist is.

In dit artikel lees je hoe je het XML-token omzet naar een Base64-token.

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.

Inhoud

  • Algemeen
  • REST connector aanroepen met AFAS Connect
  • Connector aanroepen code-voorbeelden

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

  1. Start https://connect.afas.nl en log in.
  2. Ga naar: REST API / GetConnectors.
  3. Gebruik de stappen voor:

    Productie-omgeving

    • Vul je deelnemersnummer in.
    • Selecteer het type Productie.

      Let op:

      Het deelnemernummer is het numerieke gedeelte in de naam van de omgeving. Als de omgevingsnaam bijvoorbeeld O12345AA is, dan is 12345 het deelnemersnummer.

      Ter informatie: de beginletter is het type omgeving. O = productie, T=Test, A=Accept. Zie ook Omgeving kopiëren.

    • Vul de Token in.

    Partners

    • Vul je deelnemernummer in.

      Let op:

      Het deelnemernummer is het numerieke gedeelte in de naam van de omgeving. Als de omgevingsnaam bijvoorbeeld 12345AA is, dan is 12345 het deelnemersnummer.

    • Selecteer het type Acceptatie.
    • Vul de Token in.

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