Wer das REST-API-Plugin benutzen möchte, der sollte zur Kommunikation auf jeden Fall XML nehmen. Ich persönlich würde zwar auch hier lieber auf JSON setzen (was offiziell auch unterstützt wird), aber hier macht OpenFire merkwürdige Vereinfachungen, die beim Type-Matching unweigerlich zu Problemen führen. Z.B. ist der XMPP-Roster definiert als „List of rosterItems“, in GO wäre das also „[]RosterItems“. Das funktioniert auch fast immer problemlos – außer, man hat genau einen Kontakt auf dem Roster. Dann vereinfacht openFire das eigenmächtig von einer List zu einem einzelnen Item, was sofort beim UnMarshal knallt. Mit XML macht er alles richtig.