3.3. Rest Services List

Warning

You are looking at documentation for an older release. Not what you want? See the current release documentation.

The RestServicesList service provides information about REST services deployed to the application server.

The list can be provided in two formats: HTML and JSON.

Note

The class does not implement org.exoplatform.services.rest.resource.ResourceContainer and must never be bound to the RESTful framework by using eXoContainer. This service must work as per-request resource.

HTML format

To get the list of services in HTML format, use the listHTML() method:

@GET

@Produces({MediaType.TEXT_HTML})
public byte[] listHTML()
{
   ...
}  

To do this, perform a simple GET request to the RestServicesList link.

For example, the curl -u root:exo http://localhost:8080/rest/ command will return such HTML code:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" >
<html>
   <head>
      <title>eXo JAXRS Implementation</title>
   </head>
   <body>
      <h3 style="text-align:center;">Root resources</h3>
      <table   width="90%"   style="table-layout:fixed;">
         <tr>
            <th>Path</th>
            <th>Regex</th>
            <th>FQN</th>
         </tr>
         <tr>
            <td>script/groovy</td>
            <td>/script/groovy(/.*)?</td>
            <td>org.exoplatform.services.jcr.ext.script.groovy.GroovyScript2RestLoader</td>
         </tr>
         <tr>
            <td>/lnkproducer/</td>
            <td>/lnkproducer(/.*)?</td>
            <td>org.exoplatform.services.jcr.webdav.lnkproducer.LnkProducer</td>
         </tr>
         <tr>
            <td>/registry/</td>
            <td>/registry(/.*)?</td>
            <td>org.exoplatform.services.jcr.ext.registry.RESTRegistryService</td>
         </tr>
         <tr>
            <td>/jcr</td>
            <td>/jcr(/.*)?</td>
            <td>org.exoplatform.services.jcr.webdav.WebDavServiceImpl</td>
         </tr>
         <tr>
            <td>/</td>
            <td>(/.*)?</td>
            <td>org.exoplatform.services.rest.ext.service.RestServicesList</td>
         </tr>
      </table>
   </body>
</html>

If you perform the same request with your browser, you will see the table with the list of deployed services like this:

PathRegexFQN
script/groovy/script/groovy(/.*)?org.exoplatform.services.jcr.ext.script.groovy.GroovyScript2RestLoader
/lnkproducer//lnkproducer(/.*)?org.exoplatform.services.jcr.webdav.lnkproducer.LnkProducer
/registry//registry(/.*)?org.exoplatform.services.jcr.ext.registry.RESTRegistryService
/jcr/jcr(/.*)?org.exoplatform.services.jcr.webdav.WebDavServiceImpl
/(/.*)?org.exoplatform.services.rest.ext.service.RestServicesList

JSON format

To get the list of services in HTML format, use the listJSON() method:

@GET

@Produces({MediaType.APPLICATION_JSON})
public RootResourcesList listJSON()
{
   ...
}

To do this, add the "Accept:application/json" header to your GET request.

For example, the curl -u root:exo http://localhost:8080/rest/ -H "Accept:application/json" command will return such JSON:

{"rootResources":[
   {
      "fqn":"org.exoplatform.services.jcr.ext.script.groovy.GroovyScript2RestLoader",
      "regex":"/script/groovy(/.*)?",
      "path":"script/groovy"
   },
   {
      "fqn":"org.exoplatform.services.jcr.webdav.lnkproducer.LnkProducer",
      "regex":"/lnkproducer(/.*)?",
      "path":"/lnkproducer/"
   },
   {
      "fqn":"org.exoplatform.services.jcr.ext.registry.RESTRegistryService",
      "regex":"/registry(/.*)?",
      "path":"/registry/"
   },
   {
      "fqn":"org.exoplatform.services.jcr.webdav.WebDavServiceImpl",
      "regex":"/jcr(/.*)?",
      "path":"/jcr"
   },
   {
      "fqn":"org.exoplatform.services.rest.ext.service.RestServicesList",
      "regex":"(/.*)?",
      "path":"/"
   }
]}
Copyright ©. All rights reserved. eXo Platform SAS
blog comments powered byDisqus