Enterprise REST Framework for MarkLogic Server

Let's make Beautiful RESTful Applications on MarkLogic Server with ease using
XQRS: XQuery API for RESTful Web Services

XQRS: XQuery API for RESTful Web Services is a RESTXQ implementation for MarkLogic Server.
It's fast, scales and is light weight at around 1.1k lines of code. You can seamlessly add it to your existing project without it interfering. Support is available on GitHub. RESTXQ enables you to build RESTful services declaratively with XQuery Annotations in the same way as JAX-RS does for Java.

Fastest Time to Market

Design and Build REST APIs and Microservices in Record Time

  • Building REST Services with XQRS is ultra intuitive with a short learning curve
  • Developers with a background in Java / Spring REST / JAX-RS will take to it like a duck to water
  • Get REST services and endpoints useable in minutes. Perfect for Agile software development

MarkLogic Data Hub Compatible

Load data in via Data Hub and then expose that data to downstream systems straight-away with XQRS REST Services

Built for Hyperscale

  • XQRS scales with MarkLogic. MarkLogic was built to scale this way
  • As you add MarkLogic E-Node Servers, you automatically scale out your XQRS REST servers
  • Reduce or Remove the need for a Java or .NET Middle Tier acting as a middle-man between the client and the Database which can act as a bottle neck when building Applications that need to scale massively

Reduce Vendor Lock-in

Build on Industry Standards

OpenAPI and Swagger friendly

Take an API-first approach to building your MarkLogic Application

  1. Easily design intuitive REST APIs in a tool like SwaggerHub
  2. Generate MarkLogic Server code from those API designs

RESTXQ resource functions

Create RESTful Services with URIs that work exactly how you want them to

declare
  %rest:path("/factory/warehouse/wheel/{$wheel-id}")
  %rest:GET
function get-wheel($wheel-id as xs:string) {
  fn:doc($wheel-id)
};

declare
  %rest:path("/factory/warehouse/wheel/{$wheel-id}")
  %rest:PUT("{$doc}")
  %xdmp:update
function put-wheel($wheel-id as xs:string, $doc as document-node(element())) {
  xdmp:document-insert($wheel-id, $doc, map:entry("collections", "wheels"))
};

declare
  %rest:path("/factory/warehouse/wheel")
function list-wheels() {
  <wheels>{
    fn:collection("wheels")
  }</wheels>
};

The RESTXQ standard

Adam Retter introduced the idea of creating RESTful Services in XQuery with Annotations at XML Prague 2012 and then with Christian Grün managed to flesh out the RESTXQ Specification.




TOP