Skip to content
Javascript REST client for eZ Platform RESTv2 API, mimics PHP API found in eZ Platform.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

JavaScript client for the eZ Platform REST API

Build Status

This repository provides a JavaScript library meant to ease the usage of the eZ Publish REST API.


The eZ Platform JavaScript REST Client is a bower package, so the easiest way to install it is to run:

$ bower install --save ezsystems/ez-js-rest-client

Then you can include in your project the file bower\_components/ez-js-rest-client/dist/CAPI-min.js (or the non minified version). It's also possible to directly take dist/CAPI.js or dist/CAPI-min.js in a clone of this repository.


The usage the JavaScript REST Client is detailed in Using the JavaScript REST API Client



The project maintenance is handled in a nodejs based environment with a help of Grunt task runner.

  • Install nodejs
  • Clone this repository
  • From the root of the repository, install the local npm dependencies:
    $ npm install
  • Install the global dependencies (usually you need to be root)
    # npm install -g grunt-cli yuidocjs

API Documentation

The JavaScript API documentation can be generated in the api directory with:

$ grunt doc

Alternatively, you can run

$ grunt livedoc

to run the yuidoc documentation server. The dynamic documentation can then be reached at


The library can be built with:

$ grunt build

This command will (re)generate the files dist/CAPI.js and dist/CAPI-min.js.


#### Unit tests

The unit tests can be executed with:

$ grunt test

It's also possible to generate a coverage report with:

$ grunt coverage

After this command, the report is available in test/coverage/lcov-report/index.html.

Continuous execution

During development it may be quite handy to automatically rerun unit-tests and/or lint checks, once any project related file has changed.

Using so called watch tasks this can easily be achieved. Currently the following of those tasks exist:

  • watch:lint: On each file change execute a linting run
  • watch:test: Execute a unit-test run on each file change

Manual tests

The library can be manually tested by installing the Symfony2 bundle jsRestClientBundle, which is situated in the test/manual/ folder.

Before bundle installation run grunt build command once. It will build all the source files into Resources/public/js/CAPI.js file.

Then the bundle could be installed into your current ezPublish 5.x instance using following instruction:

  • Create path/to/ezpublish5/src/EzSystems if it does not exist.

  • Symlink the bundle into /src/EzSystems/ (keep folder name).

  • Edit /app/AppKernel.php and add the following line before in the return statement of the method registerBundles:

    $bundles[] = new EzSystems\jsRestClientBundle\jsRestClientBundle();
  • Import routing.yml file of the bundle into main routing file by adding the following lines at the very bottom of ezpublish/config/routing.yml:

        resource: "@jsRestClientBundle/Resources/config/routing.yml"
  • Clear the Symfony 2 caches with app/console.

After these steps you may access /js-rest-client-test/ path where you will find testing html page. Most of requests can be configured a little bit before executing them by changing input values. See details of tests implementation in Resources/public/js/cookbook-*.js files.

You can’t perform that action at this time.