{"id":774,"date":"2016-03-07T17:00:21","date_gmt":"2016-03-07T16:00:21","guid":{"rendered":"http:\/\/www.leinders.de\/harald\/?p=774"},"modified":"2016-03-07T17:00:21","modified_gmt":"2016-03-07T16:00:21","slug":"openfire-ist-toll-aber-die-rest-api-buggy","status":"publish","type":"post","link":"https:\/\/www.leinders.de\/harald\/2016\/03\/07\/openfire-ist-toll-aber-die-rest-api-buggy\/","title":{"rendered":"OpenFire ist toll, aber die REST-API buggy"},"content":{"rendered":"<p>Wer das REST-API-Plugin benutzen m\u00f6chte, der sollte zur Kommunikation auf jeden Fall XML nehmen. Ich pers\u00f6nlich w\u00fcrde zwar auch hier lieber auf JSON setzen (was offiziell auch unterst\u00fctzt wird), aber hier macht OpenFire merkw\u00fcrdige Vereinfachungen, die beim Type-Matching unweigerlich zu Problemen f\u00fchren. Z.B. ist der XMPP-Roster definiert als &#8222;List of rosterItems&#8220;, in GO w\u00e4re das also &#8222;[]RosterItems&#8220;. Das funktioniert auch fast immer problemlos &#8211; au\u00dfer, man hat genau einen Kontakt auf dem Roster. Dann vereinfacht openFire das eigenm\u00e4chtig von einer List zu einem einzelnen Item, was sofort beim UnMarshal knallt. Mit XML macht er alles richtig.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wer das REST-API-Plugin benutzen m\u00f6chte, der sollte zur Kommunikation auf jeden Fall XML nehmen. Ich pers\u00f6nlich w\u00fcrde zwar auch hier lieber auf JSON setzen (was offiziell auch unterst\u00fctzt wird), aber hier macht OpenFire merkw\u00fcrdige Vereinfachungen, die beim Type-Matching unweigerlich zu Problemen f\u00fchren. Z.B. ist der XMPP-Roster definiert als &#8222;List of rosterItems&#8220;, in GO w\u00e4re das &hellip; <a href=\"https:\/\/www.leinders.de\/harald\/2016\/03\/07\/openfire-ist-toll-aber-die-rest-api-buggy\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eOpenFire ist toll, aber die REST-API buggy\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-774","post","type-post","status-publish","format-standard","hentry","category-systeme"],"_links":{"self":[{"href":"https:\/\/www.leinders.de\/harald\/wp-json\/wp\/v2\/posts\/774","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.leinders.de\/harald\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.leinders.de\/harald\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.leinders.de\/harald\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.leinders.de\/harald\/wp-json\/wp\/v2\/comments?post=774"}],"version-history":[{"count":1,"href":"https:\/\/www.leinders.de\/harald\/wp-json\/wp\/v2\/posts\/774\/revisions"}],"predecessor-version":[{"id":775,"href":"https:\/\/www.leinders.de\/harald\/wp-json\/wp\/v2\/posts\/774\/revisions\/775"}],"wp:attachment":[{"href":"https:\/\/www.leinders.de\/harald\/wp-json\/wp\/v2\/media?parent=774"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.leinders.de\/harald\/wp-json\/wp\/v2\/categories?post=774"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.leinders.de\/harald\/wp-json\/wp\/v2\/tags?post=774"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}