How to get access to content created in Neos via an API (REST/SOAP)?


(Puneet Khurana) #1

For an application I am working on, I need to retrieve content that I have created in Neos. I am basically looking for an API (REST/SOAP) using which I can access the content created in Neos from an external application.
Additionally, I would also like to setup a mechanism by which I can be notified or can check if some content has changed since a particular timestamp.
I have had a look at https://github.com/neos/neos-development-collection/blob/edcfb3dd4c0983b683f1ed287480192d02f5621a/Neos.Neos/Documentation/InsideOfNeos/UserInterface/ContentModule.rst#rest-server-side-api
but this seems to provide very limited API support.
Can someone please guide me about the API support available in Neos?


(Martin Ficzel) #2

There is an approach to access the CR via GraphQL (neither REST nor SOAP) https://github.com/bwaidelich/Wwwision.Neos.GraphQL that might be interesting to you.

I am not aware of other standard Rest-interfaces to the CR, however it is be quite easy to define an endpoint to expose the specific data you need. This is quite often. I personally would probably do it in pure fusion as long as it is readonly and with a controller based on \Neos\Flow\Mvc\Controller\RestController + some transfer-objects otherwise.


(Puneet Khurana) #3

Thank you Martin for your response! I was hoping for better built-in REST support but will explore what we can get via the GraphQL package. The package documentation uses the term “experimental” so I am a bit unsure whether we can use it in a production scenario.


(Puneet Khurana) #4

Unfortunately, it seems the GraphQL package only supports version 3.x of Neos and not the latest 4.x version


(Bastian Waidelich) #5

Should be easy to update, I’ll try to squeeze it in today


(Bastian Waidelich) #6

Unfortunately there’s a bit more work required, I won’t make it today.
The package is more of an experiment as stated - we plan to have a proper API at some point that can be consumed by 3rd parties too.
For higher level code I would probably go for a custom implementation though – if it’s just about getting some content, a simple JSON fusion renderer, as suggested by @martoro, could suffice?

@pkhurana or what kind of API are we talking about?