The base implementation provides Cross-Document Messaging, user interaction and basic authentication support, and is completely event driven using a pub/sub model.
You can easily configure the core library, set its export name, and provide custom modules so that it matches your need.
You can see a demo of the base API here.
How it works
JsApiToolkit provides both a server and a client component.
It is built around a generic model supporting the use of an
appKey to identify the consumer, and it also supports the notion of end-user authentication, both as something happening prior to the API being activated, and as an action that can be triggered on demand.
Essential to the architecture of the API is the Cross Document Messaging link used to communicate between the two domains. This allows state-aware communication between the two separate documents (client <> server) instead of having to resort to JSONP (client > server > client).
JsApiToolkit is based on easyXDM and so do not need any additional files uploaded to the consumer in order to provide fast communication.
The server component is a HTML document, which is to be hosted on the domain from where you want to expose your services. You are free to decide how to connect this with your back-end as long as the document is not navigated.
The client is the main library that your users will include on their sites. This will in turn connect to the server in order to provider state-aware communication between the consuming document and your providing server. The client exposes the base functionality as well as any additional modules added.
How to get started
- Modify main configuration in
/src/client/core.jsso that it reflects the desired name and location of the server components.
- If necessary, modify the XDM api. The base implementation exposes a generic
apimethod on the server, and a
publishmethod on the client for event notifications.
- Add your custom modules to
/src/client/modules/following the pattern used in the existing modules.
- Build the client library using
- Deploy! :)
Note that this is a work in progress.
This is provided under the MIT license