JSON endpoints for apps
This folder is for app developers who need more than the REST content API: search, image sizes, URL lookups,
languages, updates. Those come from the remote services (expservices), served through ezjscore's call interface
below /ezjscore/call/. A screen that needs something no service gives can get a server function of its own.
Contents
The call interface
GET|POST https://example.com/ezjscore/call/<name>::<function>[::<argument>...]?ContentType=jsonezjscore's router (ezjscServerRouter) refuses any name without an [ezjscServer_<name>] block in ezjscore.ini,
calls the registered PHP function and wraps the result as {"error_text":"","content":<result>}
(JSON endpoints with ezjscore).
expservices registers over a thousand services this way, named exp<domain>::<method>.
A quick check that the services are active, anonymously:
curl -s 'https://example.com/ezjscore/call/expsession::whoami?ContentType=json'An envelope that says you are anonymous means they are; Not a valid ezjscServerRouter argument in error_text
means expservices is not active on that installation.
Services an app is likely to use
| Need | Service | Access |
|---|---|---|
| Search | expsearch::search | content/read |
| URL of an image in a named size | expimage::url, expimage::urls | content/read |
| The configured image sizes | expimage::aliases | public |
| A node by its URL path (deep links) | expnode::getByPath | content/read |
| Descendants published since a date | expnode::modifiedSince | content/read |
| The site's languages in priority order | explanguage::prioritized | public |
| Update an item | expnode::update | content/edit |
| Who am I, making and revoking tokens | expsession::whoami, tokenCreate, tokenRevoke | signed in |
The access column is the service's own declaration in extension/expservices/classes/.
Pages in this folder
| Page | Answers |
|---|---|
| Calling expservices from an app | URLs, arguments, the envelope, paging, discovery, errors |
| Searching content | expsearch::search with text, paging and filters |
| Writing through expservices | create, update, remove; POST and tokens |
| ezjscore server functions for your app | asking for an endpoint of your own, and calling it |
Related pages
- Remote services and apps
- Remote services with expservices
- Backend services over ezjscore (reference)
- Free documentation: this page is free to copy, translate and improve under the GNU FDL 1.3.
Become an Exponential Partner
Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.