Javascript REST client for eZ Platform RESTv2 API, mimics PHP API found in eZ Platform.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
dist Merge branch '1.5' Jun 11, 2018
docs Added most current review of the CAPI state Dec 13, 2013
src Merge branch '1.5' Jun 11, 2018
test
wrap Fix EZP-21661: Implement dependency management solution via requirejs… Oct 24, 2013
.gitignore
.travis.yml EZP-25258: Make sure the doc is generated when master changes Dec 10, 2015
Gruntfile.js Revert "EZP-27462: Avoid duplication of path part of endpoint URL (#85)… Jun 1, 2018
LICENSE
README.md
bower.json Bump version to 2.0.2 May 5, 2018
jshint.json
logo-ez.png Fix EZP-21271: As a developer, I want a complete and accurate API doc… Sep 13, 2013
package.json Bump version to 2.0.2 May 5, 2018
yuidoc.json Updated livedoc logo Jul 7, 2015

README.md

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.

Installation

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.

Usage

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

Development

Requirements

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 http://127.0.0.1:3000.

Build

The library can be built with:

$ grunt build

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

Tests

#### 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:

    jsRestClientBundle:
        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.