Relayer

Xing builds on a RESTful protocol, using the Xing JSON media type, in order to connect the frontend and the backend.

Relayer is a simple to use client side interface for talking to Xing's API server. Like JS Data or Ember Data, you define data structures to represent your server's responses. But, Relayer is tailored for Xing's hypermedia conformant API and is more powerful. Other client side libraries consume an API by making calls to specific endpoints known ahead of time. Relayer instead consumes an API much like a user interacts with a web browser. Relayer starts at a single URL it knows ahead of time, then follows links to get to other resources. This means you can actually change all your API's endpoints without breaking your client. Relayer needs only a single starting URL to get all your resources.

Relayer makes talking to the Ruby On Rails Xing Server from your Angular.js Xing frontend easy. You define JSON resources and the relationships between those resources using a simple DSL. Then Relayer manages communication with your backend server. You just tell it what resource you want, and it figures out how to get it. It supports nesting resources within other resources. In fact, when you define a relationship between two resources, you don't need to say whether they link to or embed each other. You can change even switch that structure on the server without changing the client at all.