<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>During the summit we chatted about the need to make XMPP more web-dev friendly.</div><div><br></div><div>We started out trying to build the buddycloud web client on BOSH. And while it's certainly possible, the complexity quickly escalated. So Denis, as part of the Google Summer of code program built the buddycloud HTTP API server.</div><div><br></div><div>Simply: </div><div><br></div><div>[HTTP requests] ------> [API server + session magic] -----> [XMPP server]</div><div><br></div><div><br></div><div>Web developers can now send and receive JSON "100% angle bracket free", and the API server takes care of authentication and translating the the requests into XML and shoving them off the the XMPP server.</div><div><br></div><div>The API server maintains a session that a client can re-use by passing through a X-Session-Id token with each HTTP request.</div><div><br></div><div>The code is written in Node and is at <a href="https://github.com/buddycloud/buddycloud-http-api">https://github.com/buddycloud/buddycloud-http-api</a> (Apache license).</div><div><br></div><div>We're using it for the buddycloud HTTP API: <a href="https://buddycloud.org/wiki/Buddycloud_HTTP_API">https://buddycloud.org/wiki/Buddycloud_HTTP_API</a> and have found it very easy to extend with new API endpoints.</div><div><br></div><div>Hope it can be useful to people outside of buddycloud too.</div><div><br></div><div>S.</div><div apple-content-edited="true">
<div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">-- </div><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Simon Tennant | <a href="http://buddycloud.com">buddycloud.com</a> | +49 17 8545 0880 | office hours goo.gl/tQgxP</div></div></div>
</div>
<br></body></html>