Up until now, I use Alfresco out of the box Webscripts based “tooling” for REST service exploration. It feels a bit outdated and cumbersome – especially after playing with Nuxeo API playground last year – which made me jealous.
A few days ago, Alfresco announced that its new REST API Explorer product is live. The introductory post is mostly about how Alfresco plans to build APIs (Contract first, documentation, Swagger based). I think pretty much everybody agrees that it is a good idea to build on top of Swagger. However, I was missing details and did not get the motivation for some directions taken (Happens pretty frequently to me ?). I decided to give it a spin. My expectations were it being pretty similar to Nuxeo API playground.
Looking at the live version, I was missing functionality to enter an entry endpoint for an arbitrary (recent) Alfresco installation reachable from my browser. I was expecting it to allow CORS based usage just as the Nuxeo Playground does. Grabbed the source from github and had a closer look. Turns out the application indeed supports an endpoint URL from the query string. Unfortunately, it seems there is no dynamic repository endpoint available today, so the tool relies on a static file describing the APIs.
Given the fact, that the application is pure client Javascript, I was wondering why maven is used to build a war file. I was also wondering about the statement that it will come bundled with v2.2 of the SDK. Seems it is pretty much designed to run right next to one(!) instance of a repository. But why?
Time may tell. In the meantime, I hope they will introduce the dynamic repo endpoint. Will keep it around for playing with the “frequently used” APIs it covers.
Update
Getting CORS based access to work turns out to be really easy. Download the file below, drop it in alfresco/WEB-INF/lib
, restart the server, go here and run it against your local repository (or any other). Works for me using the 2016-GA releases.
Hi Andreas
Thanks for the feedback!
Truth be told, we haven’t really considered the use case about being able to give the endpoint for a local/live repository, but it’s a great idea and I will add it to the backlog as a future enhancement.
We chose to build the API Explorer with Maven for a number of reasons, the main ones being that
1) We wanted to be able to easily make this artifact available within the SDK
2) We needed an easy way to deploy it in our existing infrastructure – being a war helped a lot
We’re working hard on the APIs and we’re working towards getting a community edition release out with a set of the new APIs – this also includes updating the API Explorer and everything.
As I mentioned in my blogpost this is only the beginning! :)
/Ole
Hi Ole,
thanks for your honest response.
I guess adding parameter metadata is the biggest hurdle to get dynamically generated Swagger JSON/YAML in the repository. Fear we won’t see that anytime soon. :/
On the other hand, CORS based access turned out to be low hanging fruit.