Answered

API Auth postman-settings


Benutzerebene 5
Abzeichen +10
  • Communicator
  • 131 Kommentare

Weiß zufällig jemand wie man Postman richtig konfiguriert, damit man “nahtlos” die PERSONIO-API testen/nutzen kann?

 

Momentan ist meine API-Sammlung sehr “rudimentär” und ich muss bei jedem Test händisch einen Token generieren und anschließend in den Header der auszuführenden Funktion kopieren.

    

 

Das müsste doch über richtige Authorization-Settings z. B. OAuth2.0 automatisierbar sein oder nicht?

 

icon

Beste Antwort von Valentin 7 March 2022, 11:06

Zum Originalpost

5 Antworten

Benutzerebene 3
Abzeichen +2

Hallo @Wiki 

vielen lieben Dank für deine Frage. Das Problem hat uns intern auch beschäftigt und wir haben mittlerweile eine Lösung hierfür.

Unter Pre-request Script fügst du das folgende Script ein und tauscht bei client_id und client_secret die Platzhalter mit deinen Daten aus.

Anschließend wählst du bei Authorization den Type Bearer Token aus und fügst {{token}} bei Token ein.

const AuthRequest = {
url: 'https://api.personio.de/v1/auth?client_id=HierClientIdEinfügen&client_secret=HierClientSecretEinfügen',
method: 'POST',
};

pm.sendRequest(AuthRequest, function (err, res) {
console.log(err ? err : res.json());
if (err === null) {
console.log('Saving the token')
var responseJson = res.json();
pm.environment.set('token', responseJson.data.token)
}
});


Hat es geklappt?

 

Liebe Grüße
Valentin

Benutzerebene 5
Abzeichen +10
  1. eingefügt mit client_id und client_secret
const AuthRequest = {
url: 'https://api.personio.de/v1/auth?client_id=HierClientIdEinfügen&client_secret=HierClientSecretEinfügen',
method: 'POST',
};

pm.sendRequest(AuthRequest, function (err, res) {
console.log(err ? err : res.json());
if (err === null) {
console.log('Saving the token')
var responseJson = res.json();
pm.environment.set('token', responseJson.data.token)
}
});

 

  1. Type: “Bearer Token” und Token: “{{token}}”

 

Anschließend einen get-employees hingeworfen und es funktioniert nicht :(

 

 

Benutzerebene 3
Abzeichen +2

Hallo @Wiki,

nur um sicher zu gehen, hast du vor dem client_secret das & Zeichen belassen? Also, zum Beispiel client_id=123456&client_secret=123456

 

Liebe Grüße
Valentin

Benutzerebene 5
Abzeichen +10

@Valentin vielen Dank für Deine Hilfe es hing an irgendwelchen Settings! (vermutlich habe ich die Auth-Methode nicht korrekt in die GET-Abfrage eingefügt)

 

SUPER! Jetzt geht es.

 

Sowas solltet ihr vielleicht auch in der Developer-Ecke platzieren.

Dann müsste man das doch auch genauso auch in PowerAutomate/PowerApps von Microsoft einbinden können mit diesem Pre-Request-Script. Hat das schonmal wer gemacht?

 

 

Benutzerebene 5
Abzeichen +10

Die Lösung war:

  1. bei Postman einloggen
  2. neue Collection erstellen
  3. für die Collection folgende Einstellungen vornehmen
    a) Pre-Request-Script:


    const AuthRequest = {

    url: 'https://api.personio.de/v1/auth?
    client_id=HierClientIdEinfügen
    &
    client_secret=HierClientSecretEinfügen',
    method:
    'POST',
    };

    pm.sendRequest(AuthRequest, function (err, res) {
    console.log(err ? err : res.json());

    if (err === null) {
    console.log(
    'Saving the token')
    var responseJson = res.json();
    pm.environment.set(
    'token', responseJson.data.token)
    }
    });


    b) Authorization Type: Bearer Token
     Variable: {{token}}

 

  1. gewünschte GET/POST/PATCH/DELETE-Methoden zur Collection hinzufügen, Auth-Methode vererben von der Collection und ausprobieren.

 

mit Parameter email gefiltert, erhält man so bspw. die Antwort für nur einen Employee:


 

 

 

Deine Antwort