REST mit PHP

  • Guten Morgen Zusammen,


    ich habe ein Problem mit der REST-Schnittstelle und den POST, ich kommt da leider aktuell überhaupt nicht weiter.



    Meine Starfaceanlage hat folgenden Stand: Build-Version: 6.7.0.22


    Ich möchte zum Anfang einfach nur neue Kontakte oder Kontaktgruppen in den Anlage einspielen.


    mit der Funktion rest/contacts/tags


    Die Authentifizierung klappt wie erwartet. Aber beim POST bekomme ich immer die Rückmeldung Response status: 410 Gone, was nach meinem Empfinden bedeuten würde, das Token ist nicht mehr aktuell, aber sende ich danach ein GET mit dem gleichen Token, funktuoniert dieses?


    Hier mal der Auszug aus dem Log:


    [2020-04-27 09:23:00,527] TRACE [http-8080-5] RestLoggingFilter #
    107 * Incoming Request
    107 > GET http://xxx.de/rest/login
    107 > host: xxx.de
    107 > connection: close

    [2020-04-27 09:23:00,529] TRACE [http-8080-5] RestLoggingFilter #
    107 * Responding to GET http://xxx.de/rest/login
    107 < Response status: 200 OK
    107 < Content-Type: application/json
    ###Begin of Entity###
    class Login {
    loginType: Internal
    nonce: tm41qvt0eldujau91mn1sot6ud
    secret: null
    }


    ###End of Entity###

    [2020-04-27 09:23:00,565] TRACE [http-8080-5] RestLoggingFilter #
    108 * Incoming Request
    108 > POST http://xxx.de/rest/login
    108 > host: xxx.de
    108 > accept: */*
    108 > content-type: application/json
    108 > x-version: 2
    108 > content-length: 206
    ###Begin of Entity###
    {"loginType":"Internal","nonce":"tm41qvt0eldujau91mn1sot6ud","secret":"0001:48cb14b6adfb3ba6eb8f6949ea11ce83b8fd352ef2963989423e6cffc22af834bf129955d5a32b9a90d09fed489bbfb7d4aa4d055db2ca5a126dcd6543e02de2"}
    ###End of Entity###

    [2020-04-27 09:23:00,569] TRACE [http-8080-5] RestLoggingFilter #
    108 * Responding to POST http://xxx.de/rest/login
    108 < Response status: 200 OK
    108 < Content-Type: application/json
    ###Begin of Entity###
    class AuthToken {
    token: bqe5l103i09m3nosro2rha9mj6
    }


    ###End of Entity###

    [2020-04-27 09:23:00,575] TRACE [http-8080-5] RestLoggingFilter #
    109 * Incoming Request
    109 > POST http://xxx.de/rest/contacts/tags
    109 > host: xxx.de
    109 > accept: */*
    109 > content-type: application/json
    109 > x-version: 2
    109 > authtoken: bqe5l103i09m3nosro2rha9mj6
    109 > content-length: 65
    ###Begin of Entity###
    {"name":"testgruppe","alias":"testgruppe","owner":"1000","id":""}
    ###End of Entity###

    [2020-04-27 09:23:00,576] TRACE [http-8080-5] RestLoggingFilter #
    109 * Responding to POST http://xxx.de/rest/contacts/tags
    109 < Response status: 410 Gone
    109 < Content-Type: application/json
    ###Begin of Entity###
    null
    ###End of Entity###

    [2020-04-27 09:23:00,581] TRACE [http-8080-5] RestLoggingFilter #
    110 * Incoming Request
    110 > GET http://xxx.de/rest/contacts/tags
    110 > host: xxx.de
    110 > accept: */*
    110 > content-type: application/json
    110 > x-version: 2
    110 > authtoken: bqe5l103i09m3nosro2rha9mj6

    [2020-04-27 09:23:00,582] TRACE [http-8080-5] RestLoggingFilter #
    110 * Responding to GET http://xxx.de/rest/contacts/tags
    110 < Response status: 200 OK
    110 < Content-Type: application/json
    ###Begin of Entity###
    [class Tag {
    id: a181a603-769c-3f98-ad92-7e7367c7aa51
    name: folder/all
    alias: de.vertico.starface.addressbook.folder.all
    owner:
    }
    , class Tag {
    id: 9bc65c2a-bec1-3177-8ffa-a729489f3e87
    name: folder/users
    alias: de.vertico.starface.addressbook.folder.users
    owner:
    }
    , class Tag {
    id: 2c17c639-3771-3e30-88ae-34d6b380c5ec
    name: folder/private
    alias: de.vertico.starface.addressbook.folder.private
    owner: 1000
    }
    ]
    ###End of Entity###



    Ich stehe leider echt auf dem Schlau wo mein Fehler ist.


    Danke und Gruß
    Thomas

  • Hallo Thomas,


    die Ressourcen POST /contacts/tags und GET/PUT/DELETE /contacts/tags/{tagId} sind auf der Starface nicht verfügbar.
    In der .yaml haben sie auch nur eine Antwort definiert: 410 Action is no longer available.
    Also die 410 bedeutet, dass der Endpunkt nicht (mehr) verfügbar ist.


    Gruß
    Kevin

  • Neue Kontakt erstellen ist leider nicht ganz trivial.


    Mit den Standard Feldern im Adressbuch sieht der Aufruf folgendermaßen aus:


    POST .../rest/contacts
    body:


    Den Wert für "tags" habe ich zuvor mit GET ..rest/contacts/tags mir ausgeben lassen.


    Falls benutzerdefinierte Felder benutzt werden empfehle ich (zumindest für die Entwicklung) einen "Dummy" Kontakt mit allen Feldern befüllt anzulegen.
    Dann via GET .../rest/contacts die id herausfinden und anschließend via GET .../contacts/{contactId} das JSON zu hohlen. Das Json kann dann (mit abgeänderten werten) zum anlegen anderer Kontakte benutzt werden.

  • DANKE!


    genau diese Informationen haben mir gefehlt.


    Ich konnte jetzt einen Testkontakt per Schnittstelle einspielen und abfragen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!