REST API

Contributing a New Endpoint

Updated: February 11, 2019 Page Information Edit on GitHub

It is possible to contribute a new endpoint to the API creating new web objects.

Thanks to WebEngine and its pluggability, we provided a way to add other root endpoints that benefit from the same infrastructure. It’s just a matter of providing a web object in another bundle, like the following one.

@WebObject(type="productRoot")
public class ProductRoot {

    @GET
    public List getProducts() throws ClientException {
        ProductService ps = Framework.getLocalService(ProductService.class);
        return ps.getAllProducts(getContext().getCoreSession());
    }

    @Path("{productId}")
    public Object getProduct(@PathParam("productId") String productId) {
       return newObject("product", productId);
    }

}

This will expose two new APIs:

  • GET /nuxeo/api/v1/product
  • GET /nuxeo/api/v1/product/{productId}

Since Document Adapters are used as return types, the API will automatically benefit from the integrated adapter serializations (readers and writers). That means that it is very easy to build your own API, and that you inherit all the other pluggability mechanisms.

3 months ago manonlumeau NXDOC-1831: remove opensocial parameters
6 years ago Solen Guitter 7
6 years ago Solen Guitter 6
6 years ago Alain Escaffre 5
6 years ago Alain Escaffre 2
6 years ago Alain Escaffre 3
6 years ago Alain Escaffre 4
6 years ago Alain Escaffre 1
History: Created by Alain Escaffre

We'd love to hear your thoughts!

All fields required