Displaying items by tag: api

Monday, 25 September 2017 23:40

Release System Module API

The Release System Module is implemented with the plg_jbackend_release plugin. It provides functions to implement a full Joomla Update Server and/or a generic Package Distribution System based on Joomla. It supports both free and paid packages, and it is seamlessly integrated with Joomla user's groups for authorization and license key generation. Here is the list of supported methods.

Generate key by email

Sends an email to the user with the license key for the specified package group.

Request parameters

action=post
module=release
resource=keybyemail
id=<package group>
email=<user email>

Example

<end-point>?action=post&module=release&resource=keybyemail&id=redj_ent&email=This email address is being protected from spambots. You need JavaScript enabled to view it.

Example (REST format)

<end-point>/post/release/keybyemail/redj_ent?email=This email address is being protected from spambots. You need JavaScript enabled to view it.

Response

{
    "status": "ok"
}

Notes

email is the user's account email on Joomla.

 

Generate key by authentication

Returns the license key for the specified package group.

Request parameters

action=post
module=release
resource=keybyauth
id=<package group>
username=<username>
password=<password>

Example

<end-point>?action=post&module=release&resource=keybyauth&id=redj_ent&username=user123&password=pass123

Example (REST format)

<end-point>/post/release/keybyauth/redj_ent?username=user123&password=pass123

Response

{
    "status": "ok",
    "email": "user email",
    "key": "license key"
}

Notes

username and password are the credentials used for the user's account on Joomla.

 

Validate key

Checks if a license key is valid for the specified package group.

Request parameters

action=post
module=release
resource=validate
id=<package group>
email=<user email>
key=<license key>

Example

<end-point>?action=post&module=release&resource=validate&id=redj_ent&email=This email address is being protected from spambots. You need JavaScript enabled to view it.&key=fd8s809f89ds8f90sd81231sdsds323

Example (REST format)

<end-point>/post/release/validate/redj_ent?email=This email address is being protected from spambots. You need JavaScript enabled to view it.&key=fd8s809f89ds8f90sd81231sdsds323

Response

{
    "status": "ok"
}

 

Verify key

Checks if a license key is valid for the specified package id.

Request parameters

action=post
module=release
resource=verify
id=<package id>
email=<user email>
key=<license key>

Example

<end-point>?action=post&module=release&resource=verify&id=redj_ent_190&email=This email address is being protected from spambots. You need JavaScript enabled to view it.&key=fd8s809f89ds8f90sd81231sdsds323

Example (REST format)

<end-point>/post/release/verify/redj_ent_190?email=This email address is being protected from spambots. You need JavaScript enabled to view it.&key=fd8s809f89ds8f90sd81231sdsds323

Response

{
    "status": "ok"
}

Notes

This method is intended to verify a license key over a specific package id before to download it.

 

Download package

Download the package for the specified package id.

Request parameters

action=post
module=release
resource=download
id=<package id>
email=<user email>
key=<license key>

Example

<end-point>?action=post&module=release&resource=download&id=redj_ent_190&email=This email address is being protected from spambots. You need JavaScript enabled to view it.&key=fd8s809f89ds8f90sd81231sdsds323

Example (REST format)

<end-point>/post/release/verify/redj_ent_190?email=This email address is being protected from spambots. You need JavaScript enabled to view it.&key=fd8s809f89ds8f90sd81231sdsds323

Response

The binary package (as application/octet-stream)

 

Plugin Settings

jBackend Release System Plugin Settings

The following options are available for release system plugin:

Option Description
Folder Packages distribution folder path relative to Joomla root folder (JPATH_ROOT).
Package groups List of package groups. Packages in the same group share the same license key. Format is 'package group;groups[;hash;package name]' where package group is an unique identifier (e.g. redj_enterprise), groups is a list of user groups allowed to download packages in this group separated by commas (e.g. 1,3,5), hash is an optional random string used as seed for the generation of group's license keys, and package name is the human readable name of the package (e.g. ReDJ Enterprise).
Packages List of packages to distribute. Format is 'package id;package path[;package group]' where package id is an unique identifier (e.g. redj_ent_190), package path is the path of the package file relative to the packages distribution folder (e.g. private/joomla/redj/ReDJ1.9.0.zip), and package group is the group identifier (optional, not required for free downloads).
Monday, 15 May 2017 18:21

Community Builder Module API

This module is only available with the Premium Subscription.
This module is intended for B2B integration. It exposes data that should not be made available on a public endpoint, so it must be used only on a private endpoint and somehow protected (e.g. through an API key).

The Community Builder Module is implemented with the plg_jbackend_comprofiler plugin. It provides functions related to Community Builder extension. Here is the list of supported methods.

List users

Request parameters

action=get
module=comprofiler
resource=users
limit=<L> (optional)
offset=<O> (optional)

Example

<end-point>?action=get&module=comprofiler&resource=users

Example (REST format)

<end-point>/get/comprofiler/users?limit=10&offset=2

Response

{
    "status": "ok",
    "total": <total>,
    "limit": <limit>,
    "offset": <offset>,
    "users": [
        {
            "id": "<userid>",
            ...
        },
        ...
        {
            "id": "<userid>",
            ...
        }
    ]
}

Notes

limit is the number of entries to return.

offset is the cursor starting point (0 based, start on record 16 means offset = 15).

If limit is not specified, offset is ignored.

Properties limit and offset in the response are present only when specified in the request.

 

Get user profile

Request parameters

action=get
module=comprofiler
resource=profile
id=<id>

Example

<end-point>?action=get&module=comprofiler&resource=profile&id=482

Example (REST format)

<end-point>/get/comprofiler/profile/482

Response

{
    "status": "ok",
    ...
}

 

Update user profile

Request parameters

action=put
module=comprofiler
resource=profile

 

JSON payload data

{
    "id": "<userid>",
    "name": "<name>",
    "username": "<username>",
    "email": "<email>",
    "password": "<password>",
    ...
}

Example

<end-point>?action=put&module=comprofiler&resource=profile

Example (REST format)

<end-point>/put/comprofiler/profile

Response

{
    "status": "ok"
}

Notes

The id parameter in the request payload is mandatory to identify the user profile to update.

Other mandatory fields are username, email, and name.

It is possible to specify any supported field in the payload.

 

Monday, 15 May 2017 09:53

Search Module API

This module is only available with the Premium Subscription.

The Search Module is implemented with the plg_jbackend_search plugin. It provides functions related to Joomla search module. Here is the list of supported methods.

Search site

Request parameters

action=get
module=search
resource=site
searchword=<term>
searchphrase=<all> (optional)
limitstart=<offset> (optional)
limit=<limit> (optional)
ordering=<orderby> (optional)
areas[]=<area> (optional)

Example

<end-point>?action=get&module=search&resource=site?searchword=joomla&searchphrase=all&limitstart=10&limit=10&ordering=newest&areas[]=content

Example (REST format)

<end-point>/get/search/site?searchword=<term>

Response

{
    "status": "ok",
    "total": <T>,
    "limit": <L>,
    "offset": <O>,
    "pages_current": <C>,
    "pages_total": <P>,
    "results": [
        {
            "title": "<title>",
            "metadesc": "<metadesc>",
            "metakey": "<metakey>",
            "created": "<date created>",
            "language": "<language>",
            "catid": "<cid>",
            "text": "<text>",
            "section": "<section>",
            "slug": "<id:slug>",
            "catslug": "<id:slug>",
            "browsernav": "<browsernav>",
            "href": "<href>",
            "jcfields": "<jcfields>"
        },
        ...
    ]
}

Notes

searchphrase:
any, exact, all (default)

ordering:
newest (default), oldest, popular, alpha, category

areas:
an array of search areas (e.g. content)

Created date format is YYYY-MM-DD HH:MM:SS

Language can be "*" if any.

 

Monday, 07 November 2016 23:47

jBackend Community

jBackend Community is the lite version of jBackend available for free, no subscription required. It provides all the basic features to integrate Joomla content with mobile apps, syndication networks, affiliate networks and any external system, and it is mainly intended to give a chance to test jBackend capabilities, to develop and test new modules, and to provide some basic REST API integration features to a Joomla site.

When the upgrade to the full jBackend version is required, it is possible to install the full jBackend package over the Community version. The two versions share the same data tables and settings, and the upgrade process will preserve the configuration and all existing data.

The Community version is completely free, but doesn't provide the full functionalities available for jBackend. Here's a comparison matrix between jBackend Community and jBackend:

 

Features jBackend Community jBackend
Extensible through plugins to increase API and support any Joomla extension Yes
(2 plugins in the package)
Yes
(3 plugins in the package, 7+ included
with the subscription)
Support for publishing of multiple endpoints, each with its specific settings Yes Yes
Three endpoint access type (free access, user authenticated only, API Key required) No
(free only)
Yes
Tracing requests in the database for each endpoint Yes Yes
Selection of jBackend plugins to enable for each endpoint Yes Yes
API Key management interface No
(not used)
Yes
Request log management interface Yes Yes
Each API Key can have a max daily requests limit and an expiration date No
(not used)
Yes
Each API Key can be targeted on separate endpoints No
(not used)
Yes
Access control is compliant with integrated ACL No
(not used)
Yes
Support for REST compliant requests Yes Yes
JSON format for responses Yes Yes
Support for session ID No
(only cookies)
Yes
Get the list of articles by tag id (content module) No Yes
Support for push notifications on iOS (APNs) and Android (GCM) No Yes
Custom payload for push notifications No Yes
Scheduled sending of push notifications No Yes
Push notifications can be create and scheduled via API call No Yes
Push notifications can be targeted on selected users, groups or devices No Yes
License GPL 2.0 GPL 2.0
Price Free 14 € (one year subscription)
  Download jBackend Community Buy Subscription to jBackend

The basic extension package includes the jBackend component, that provides the general infrastructure for endpoints, and plugins support system. Also the following plugins are already included in the basic package:

  • User Module: provides support for Joomla users (e.g. login, logout, registration);
  • Content Module: provides support for standard Joomla content (e.g. categories and articles);

Additional plugins are available only with a valid jBackend Subscription and can be downloaded from here and installed separately. More info about jBackend can be found here

jBackend Community is released under GPL 2.0 license.

Published in Products
Saturday, 07 May 2016 11:37

Kunena Module API

The Kunena Module is implemented with the plg_jbackend_kunena plugin. It provides functions related to Kunena forum for Joomla (topics and categories). Here is the list of supported methods.

Get the list of categories

Request parameters

action=get
module=kunena
resource=categories
parentid=<P> (optional) default to the root
levels=<L> (optional) 0=all levels, default is 1
unpublished=<0|1> (optional) 0=Hide (default), 1=Show

Example

<end-point>?action=get&module=kunena&resource=categories&parentid=<P>&levels=<L>

Example (REST format)

<end-point>/get/kunena/categories?parentid=<P>

Response

{
    "status": "ok",
    "categories": [
        {
            "id": "<category id>",
            "name": "<category name>",
            "alias": "<category alias>",
            "description": "<category description>",
            "parent_id": "<parent category id>",
            "level": "<category level>",
            "numTopics": "<number of category topics>",
            "numPosts": "<number of category posts>",
            "hits": "<number of hits>"
        }
    ]
}

 

Get a category

Request parameters

action=get
module=kunena
resource=categories
id=<N>

Example

<end-point>?action=get&module=kunena&resource=categories&id=<N>

Example (REST format)

<end-point>/get/kunena/categories/<N>

Response

{
    "status": "ok",
    "id": "<category id>",
    "name": "<category name>",
    "alias": "<category alias>",
    "description": "<category description>",
    "parent_id": "<category parent id>",
    "level": "<category language>",
    "numTopics": "<number of category topics>",
    "numPosts": "<number of category posts>",
    "hits": "<number of hits>",
    "icon": "<category icon>",
    "icon_id": "<category icon id>",
    "locked": "<locked status>",
    "pub_access": "<public access>",
    "pub_recurse": "<public recurse>",
    "review": "<review>",
    "allow_anonymous": "<allow anonymous>",
    "post_anonymous": "<post anonymous>",
    "allow_polls": "<allow polls>",
    "topic_ordering": "<topic ordering>",
    "last_topic_id": "<last topic id>",
    "last_post_id": "<last post id>",
    "last_post_time": "<last post time>"
}

 

Get the list of topics

Request parameters

action=get
module=kunena
resource=topics
catid=<C>
limit=<L> (optional)
offset=<O> (optional)
orderdir=<dir> (optional) asc, desc

Example

<end-point>?action=get&module=kunena&resource=topics&catid=<C>

Example (REST format)

<end-point>/get/kunena/topics?catid=<C>

Response

{
    "status": "ok",
    "total": "<total items>",
    "limit": <pagination limit>,
    "offset": <pagination offset>,
    "topics": [
        {
          "id": "<topic id>",
          "category_id": "<category id>",
          "subject": "<topic subject>",
          "locked": "<locked>",
          "hold": "<hold>",
          "posts": "<posts>",
          "hits": "<number of hits>",
          "attachments": "<attachments>",
          "first_post_id": "<first post id>",
          "first_post_time": "<first post time>",
          "first_post_userid": "<first post user id>",
          "first_post_message": "<first post message text>",
          "first_post_guest_name": "<first post guest name>",
          "last_post_id": "<last post id>",
          "last_post_time": "<last post time>",
          "last_post_userid": "<last post user id>",
          "last_post_message": "<last post message text>",
          "last_post_guest_name": "<last post guest name>"
        },
        ...
        {
        }
    ]
}

 

Get a topic

Request parameters

action=get
module=kunena
resource=topics
id=<N>

Example

<end-point>?action=get&module=kunena&resource=topics&id=<N>

Example (REST format)

<end-point>/get/kunena/topics/<N>

Response

{
  "status": "ok",
  "id": <topic id>,
  "category_id": "<category id>",
  "subject": "<subject>",
  "locked": "<locked>",
  "hold": "<hold>",
  "posts": "<posts>",
  "hits": "<number of hits>",
  "attachments": "<attachments>",
  "first_post_id": "<first post id>",
  "first_post_time": "<first post time>",
  "first_post_userid": "<first post user id>",
  "first_post_message": "<first post text message>",
  "first_post_guest_name": "<first post guest name>",
  "last_post_id": "<last post id>",
  "last_post_time": "<last post time>",
  "last_post_userid": "<last post user id>",
  "last_post_message": "<last post text message>",
  "last_post_guest_name": "<last post guest name>",
  "messages": [
    {
      "id": "<message id>",
      "parent": "<parent id>",
      "thread": "<thread id>",
      "catid": "<category id>",
      "name": "<user name>",
      "userid": "<user id>",
      "email": "<email>",
      "subject": "<message subject>",
      "time": "<message time>",
      "ip": "<ip address>",
      "topic_emoticon": "<topic emoticon>",
      "locked": "<locked>",
      "hold": "<hold>",
      "hits": "<number of hits>",
      "message": "<message>",
      "replynum": <number of replies>,
      "thankyou": [
        ...
      ]
    },
    ...
    {
        ...
    }
  ]
}
Monday, 09 November 2015 23:57

Push Module API

The Push Module is implemented with the plg_jbackend_push plugin. It provides functions related to mobile push notifications for iOS and Android. Here is the list of supported methods.

Register

The register function must be called by mobile apps each time they get a notification token from the push service (e.g. APNs or FCM) to register the device on jBackend. Registration is needed to send push notifications to the app on the registered device.

Request parameters

action=put
module=push
resource=register
token=<token>
appcode=<appcode>
platform=<platform>
user_id=<user_id> (optional)
user_email=<user_email> (optional)
ios_alert=<true or 1> (optional)
ios_badge=<true or 1> (optional)
ios_sound=<true or 1> (optional)

Example

<end-point>?action=put&module=push&resource=register&token=<token>&appcode=<appcode>&platform=ios

Example (REST format)

<end-point>/put/push/register?token=<token>&appcode=<appcode>&platform=android

Response

{
    "status": "ok",
    "token": "<token>",
    "appcode": "<appcode>",
    "platform": "<generic|android|ios>",
    "platform_code": <platform_code>,
    "app_id": "<app_id>",
    "device_id": <device_id>,
    "ios_alert": <0|1>,
    "ios_badge": <0|1>,
    "ios_sound": <0|1>
}

Notes

Supported platform codes are 0=Generic, 1=Android, 2=iOS.

It is possible to associate an existing Joomla user to the device with the user_id param. If the plugin option Require user email is enabled, it is also needed to include the user_email field, and the email must match with the registered email address for the user with the specified user_id.

On iOS platform the app can also send (optionally) its notification settings for alert (ios_alert), badge (ios_badge), and sound (ios_sound). These values can be used to filter target devices when sending push notifications from jBackend.

 

Scheduler

The scheduler function must be called on a regular basis (e.g. from a crontab) to trigger the sending of scheduled push notifications.

Request parameters

action=get
module=push
resource=scheduler

Example

<end-point>?action=get&module=push&resource=scheduler

Example (REST format)

<end-point>/get/push/scheduler

Response

{
    "status": "ok",
    "batch_size": <N>,
    "sent": <T>,
    "success": <S>,
    "failure": <F>
}

Notes

Sent is the total number of processed notifications.

 

Notifications

This function allows to create a push notification programmatically (i.e. add a notification to the queue).

Request parameters

action=post
module=push
resource=notifications
title=<title>
message=<message>
app_code=<app_code>
platform=<platform>
target=<target>
target_users=<target_users>
target_groups=<target_groups>
target_devices=<target_devices>
scheduled_time=<scheduled_time>
payload=<payload> (optional)
context=<context> (optional)
auth_token=<auth_token> (optional)

Example

<end-point>?action=post&module=push&resource=notifications&title=<title>&message=<message>&app_code=<code>&platform=1&target=0&scheduled_time=2016-11-13%2000:15:31

Example (REST format)

<end-point>/post/push/notifications?title=<title>&message=<message>&app_code=<code>&platform=1&target=0&scheduled_time=2016-11-13%2000:15:31

Response

{
    "status": "ok"
}

Notes

Supported platform codes are 0=Generic, 1=Android, 2=iOS.

Supported target codes are 0=All, 1=Selected users, 2=Selected groups, 3=Selected devices.

Params target_users, target_groups and target_devices are comma separated list of id.

Scheduled time format is YYYY-MM-DD HH:MM:SS (e.g. 2016-07-23 00:19:11).

Params payload and context can be a string or a json.

 

Plugin Settings

jBackend Push Plugin Settings jBackend Push Plugin Settings Android jBackend Push Plugin Settings iOS

The following options are available for push plugin:

Option Description
Auto app registration Allow automatic creation of new applications by code.
Require user email Require the user email to add the user id when register a device (as a security measure).
JSON Register Enable JSON payload on register action.
JSON Notifications Enable JSON payload on add notification action.
Protect Notifications Enable token protection on add notification action.
Authorization Token The token that enables the add notification action.
Batch size Number of push messages to send out each batch job.
Log notifications Enable logging of all notifications in a dedicated database table (useful for analytics purposes).
FCM URL URL of Firebase Cloud Messaging server.
API key Google API key.
Use FCM Use FCM to send push messages on iOS too.
APNs URL URL of Apple APNs server.
Timeout APNs connection timeout.
Tuesday, 21 July 2015 09:28

Menu Module API

The Menu Module is implemented with the plg_jbackend_menu plugin. It provides functions related to Joomla menus (com_menus). Here is the list of supported methods.

Get the list of menus

Request parameters

action=get
module=menu
resource=menus
limit=<L> (optional)
offset=<O> (optional)
orderby=<field> (optional)
orderdir=<dir> (optional)

Example

<end-point>?action=get&module=menu&resource=menus&limit=<L>&offset=<O>

Example (REST format)

<end-point>/get/menu/menus?limit=<L>

Response

{
    "status": "ok",
    "total": <total items>,
    "limit": <pagination limit>,
    "offset": <pagination offset>,
    "pages_current": <current page>,
    "pages_total": <total pages>,
    "menus": [
        {
            "id": "<menu id>",
            "menutype": "<menu type>",
            "title": "<menu title>",
            "description": "<menu description>",
            "count_published": "<total published>",
            "count_unpublished": "<total unpublished>",
            "count_trashed": "<total trashed>"
        },
        ...
        {
            "id": "<menu id>",
            "menutype": "<menu type>",
            "title": "<menu title>",
            "description": "<menu description>",
            "count_published": "<total published>",
            "count_unpublished": "<total unpublished>",
            "count_trashed": "<total trashed>"
        }
    ]
}

 

Get a menu

Request parameters

action=get
module=menu
resource=menus
id=<N>

Example

<end-point>?action=get&module=menu&resource=menus&id=<N>

Example (REST format)

<end-point>/get/menu/menus/<N>

Response

{
    "status": "ok",
    "id": "<menu id>",
    "menutype": "<menu type>",
    "title": "<menu title>",
    "description": "<menu description>"
}

 

Get the list of menu items

Request parameters

action=get
module=menu
resource=items
menutype=<menutype>
parentid=<R> (optional)
level=<E> (optional)
limit=<L> (optional)
offset=<O> (optional)
orderby=<field> (optional)
orderdir=<dir> (optional)

Example

<end-point>?action=get&module=menu&resource=items&menutype=<menutype>&orderby=<field>&orderby=<dir>

Example (REST format)

<end-point>/get/menu/items?menutype=<menutype>

Response

{
    "status": "ok",
    "total": <total items>,
    "limit": <pagination limit>,
    "offset": <pagination offset>,
    "pages_current": <current page>,
    "pages_total": <total pages>,
    items: [
        {
            "id": "<article id>",
            "menutype": "<menu type>",
            "title": "<title>",
            "alias": "<alias>",
            "note": "<note>",
            "path": "<path>",
            "link": "<link>",
            "type": "<type>",
            "parent_id": "<parent id>",
            "level": "<level>",
            "component_id": "<component id>",
            "browserNav": "<browserNav>",
            "access": "<access>",
            "img": "<img>",
            "template_style_id": "<template style id>",
            "home": "<home>",
            "language": "<language>",
            "client_id": "<client id>",
            "language_title": "<language title>",
            "image": "<image>",
            "componentname": "<component name>",
            "access_level": "<access level>",
            "name": "<component name>"
        },
        ...
        {
            ...
        }
    ]
}
Sunday, 05 April 2015 12:43

jBackend Custom Modules

If you need to integrate your Joomla site with another system or offer a service through a set of accessible API, jBackend is the right extension for you. jBackend can be extended with custom plugins to support any kind of extension and provide any kind of service. There is a detailed documentation which explains how to create your own modules. And if you are not a programmer you can HIRE US and get the job done right.

Reasons for success with us:

  • We have a long experience as system integrator;
  • We are a Joomla experts with a great reputation from the community;
  • We are cheap... really, prices from 20 euro;
  • And moreover, we are the creators of jBackend, so we know what we do.

How to get in touch with us:

To request a quote without engagement, This email address is being protected from spambots. You need JavaScript enabled to view it. or compile a request form, or access to Client Manager and create a new project request.

Published in Services
Saturday, 08 November 2014 00:00

ZOO Module API

The ZOO Module is implemented with the plg_jbackend_zoo plugin. It provides functions related to ZOO extension (applications, categories and items). Here is the list of supported methods.

Get the list of categories

Request parameters

action=get
module=zoo
resource=categories
app=<app id>

Example

<end-point>?action=get&module=zoo&resource=categories&app=<A>

Example (REST format)

<end-point>/get/zoo/categories?app=<A>

Response

{
    "status": "ok",
    "total": <T>,
    "categories": [
        {
            "id": "<category id>",
            "name": "<category name>",
            "alias": "<category alias>",
            "description": "<description>",
            "parent": "<parent id>"
        },
        ...
        {
            "id": "<category id>",
            "name": "<category name>",
            "alias": "<category alias>",
            "description": "<description>",
            "parent": "<parent id>"
        }
]}

 

Get a category

Request parameters

action=get
module=zoo
resource=categories
id=<N>
app=<app id>

Example

<end-point>?action=get&module=zoo&resource=categories&id=<N>&app=<A>

Example (REST format)

<end-point>/get/zoo/categories/<N>?app=<A>

Response

{
    "status": "ok",
    "id": "<category id>",
    "name": "<category name>",
    "alias": "<category alias>",
    "description": "<category description>",
    "application_id": "<application id>",
    "parent": "<parent id>",
    "ordering": "<ordering>",
    "content_subtitle": "<content subtitle>",
    "content_image": "<content image>",
    "content_image_width": "<content image width>",
    "content_image_height": "<content image height>",
    "metadata_title": "<meta title>",
    "metadata_description": "<meta description>",
    "metadata_keywords": "<meta keywords>",
    "metadata_robots": "<meta robots>",
    "metadata_author": "<meta author>"
}

 

Get the list of items

Request parameters

action=get
module=zoo
resource=items
category=<C>
limit=<L> (optional)
page=<P> (optional)
app=<app id>

Example

<end-point>?action=get&module=zoo&resource=items&category=<C>&app=<A>

Example (REST format)

<end-point>/get/zoo/items?category=<C>&app=<A>

Response

{
    "status": "ok",
    "total": <T>,
    "limit": <L>,
    "page": <P>,
    "items": [
        {
            "id": "<item id>",
            "name": "<item name>",
            "alias": "<item alias>",
            "created": "<created date>",
            "created_by": "<created by id>",
            "modified": "<modified date>",
            "modified_by": "<modified by id>",
            "publish_up": "<publish up date>",
            "publish_down": "<publish down date>"
        },
        ...
        {
            "id": "<item id>",
            "name": "<item name>",
            "alias": "<item alias>",
            "created": "<created date>",
            "created_by": "<created by id>",
            "modified": "<modified date>",
            "modified_by": "<modified by id>",
            "publish_up": "<publish up date>",
            "publish_down": "<publish down date>"
        }
]
}

Notes

Created and modified date format is YYYY-MM-DD HH:MM:SS

 

Get an item

Request parameters

action=get
module=zoo
resource=items
id=<N>
app=<app id>

Example

<end-point>?action=get&module=zoo&resource=items&id=<N>&app=<A>

Example (REST format)

<end-point>/get/zoo/items/<N>=?app=<A>

Response

{
    "status": "ok",
    "id": "<item id>",
    "name": "<item name>",
    "alias": "<item alias>",
    "application_id": "<application id>",
    "type": "<item type>",
    "created": "<created date>",
    "created_by": "<created by id>",
    "modified": "<modified date>",
    "modified_by": "<modified by id>",
    "publish_up": "<publish up date>",
    "publish_down": "<publish down date>",
    "priority": "<item priority>",
    "state": "<item state>",
    "searchable": "<is searchable>",
    "access": "<item access>",
    "hits": <item hits>,
    "metadata_title": "<meta title>",
    "metadata_description": "<meta description>",
    "metadata_keywords": "<meta keywords>",
    "metadata_robots": "<meta robots>",
    "metadata_author": "<meta author>",
    "enable_comments": "<enable comments>",
    "primary_category": "<primary category id>",
    "elements": {
        "<element 1 id>": {
            "identifier": "<element 1 id>",
            "type": "<element type>",
            "data": {
                "<field 1 name>": "<field 1 value>",
                ...
                "<field M name>": "<field M value>"
            }
        },
        ...
        "<element N id>": {
            "identifier": "<element N id>",
            "type": "<element type>",
            "data": {
                "<field 1 name>": "<field 1 value>",
                ...
                "<field L name>": "<field L value>"
            }
        },
    }
}

Notes

Created and modified date format is YYYY-MM-DD HH:MM:SS

When option Identify elements is set to No, the elements structure is different:

    "elements": [
        {
            "identifier": "<element 1 id>",
            "type": "image",
            "data": {
                "<field 1 name>": "<field 1 value>",
                ...
                "<field M name>": "<field M value>"
            }
        },
        {
            "identifier": "<element N id>",
            "type": "textarea",
            "data": {
                "<field 1 name>": "<field 1 value>",
                ...
                "<field L name>": "<field L value>"
            }
        }
    ]

 

Plugin Settings

jBackend ZOO Plugin Settings

The following options are available for user plugin:

Option Description
Update hits Update hits counter for each request.
Identify elements Use field identifier as key to build the elements in the response.
Include elements Include elements data in the list of items.
Name elements Use a slug name for elements (in lowercase without blanks).
Friday, 26 September 2014 00:00

SobiPro Module API

The SobiPro Module is implemented with the plg_jbackend_sobipro plugin. It provides functions related to SobiPro directory extension (sections, categories and entries). Here is the list of supported methods.

Get the list of sections

Request parameters

action=get
module=sobipro
resource=sections

Example

<end-point>?action=get&module=sobipro&resource=sections

Example (REST format)

<end-point>/get/sobipro/sections

Response

{
    "status": "ok",
    "total": <T>,
    "sections": [
        {
            "id": "<section id>",
            "nid": "<section nid>",
            "name": "<section name>"
        },
        ...
        {
            "id": "<section id>",
            "nid": "<section nid>",
            "name": "<section name>"
        }
]}

 

Get a section

Request parameters

action=get
module=sobipro
resource=sections
id=<N>

Example

<end-point>?action=get&module=sobipro&resource=sections&id=<N>

Example (REST format)

<end-point>/get/sobipro/sections/<N>

Response

{
    "status": "ok",
    "id": "<section id>",
    "nid": "<section nid>",
    "name": "<section name>",
    "description": "<section description>",
    "owner": "<section owner id>",
    "counter": "<counter>",
    "createdTime": "<created time>",
    "updatedTime": "<updated time>",
    "metaDesc": "<meta description>",
    "metaKeys": "<meta keywords>",
    "metaAuthor": "<meta author>",
    "metaRobots": "<meta robots>",
    "version": "<version number>"
}

Notes

Created and updated date format is YYYY-MM-DD HH:MM:SS

 

Get the list of categories

Request parameters

action=get
module=sobipro
resource=categories
parent=<N>

Example

<end-point>?action=get&module=sobipro&resource=categories&parent=<N>

Example (REST format)

<end-point>/get/sobipro/categories?parent=<N>

Response

{
    "status": "ok",
    "total": <T>,
    "categories": [
        {
            "id": "<category id>",
            "nid": "<category nid>",
            "name": "<category name>",
            "owner": "<owner id>",
            "counter": "<counter>",
            "createdTime": "<created time>",
            "updatedTime": "<updated time>",
            "metaDesc": "<meta description>",
            "metaKeys": "<meta keywords>",
            "metaAuthor": "<meta author>",
            "metaRobots": "<meta robots>",
            "version": "<version number>"
        },
        ...
        {
            "id": "<category id>",
            "nid": "<category nid>",
            "name": "<category name>",
            "owner": "<owner id>",
            "counter": "<counter>",
            "createdTime": "<created time>",
            "updatedTime": "<updated time>",
            "metaDesc": "<meta description>",
            "metaKeys": "<meta keywords>",
            "metaAuthor": "<meta author>",
            "metaRobots": "<meta robots>",
            "version": "<version number>"
        }
]}

Notes

Created and updated date format is YYYY-MM-DD HH:MM:SS

 

Get a category

Request parameters

action=get
module=sobipro
resource=categories
id=<N>

Example

<end-point>?action=get&module=sobipro&resource=categories&id=<N>

Example (REST format)

<end-point>/get/sobipro/categories/<N>

Response

{
    "status": "ok",
    "id": "<category id>",
    "nid": "<category nid>",
    "name": "<category name>",
    "description": "<category description>",
    "owner": "<category owner id>",
    "counter": "<counter>",
    "createdTime": "<created time>",
    "updatedTime": "<updated time>",
    "metaDesc": "<meta description>",
    "metaKeys": "<meta keywords>",
    "metaAuthor": "<meta author>",
    "metaRobots": "<meta robots>",
    "version": "<version number>",
    "parent": "<parent id>"
}

Notes

Created and updated date format is YYYY-MM-DD HH:MM:SS

 

Get the list of entries

Request parameters

action=get
module=sobipro
resource=entries
category=<C>

Example

<end-point>?action=get&module=sobipro&resource=entries&category=<C>

Example (REST format)

<end-point>/get/sobipro/entries?category=<C>

Response

{
    "status": "ok",
    "total": <T>,
    "entries": [
        {
            "id": "<entry id>",
            "nid": "<entry nid>",
            "name": "<entry name>",
            "owner": "<owner id>",
            "counter": "<counter>",
            "createdTime": "<created time>",
            "updatedTime": "<updated time>",
            "metaDesc": "<meta description>",
            "metaKeys": "<meta keywords>",
            "metaAuthor": "<meta author>",
            "metaRobots": "<meta robots>",
            "version": "<version number>"
        },
        ...
        {
            "id": "<entry id>",
            "nid": "<entry nid>",
            "name": "<entry name>",
            "owner": "<owner id>",
            "counter": "<counter>",
            "createdTime": "<created time>",
            "updatedTime": "<updated time>",
            "metaDesc": "<meta description>",
            "metaKeys": "<meta keywords>",
            "metaAuthor": "<meta author>",
            "metaRobots": "<meta robots>",
            "version": "<version number>"
        }
]}

Notes

Created and updated date format is YYYY-MM-DD HH:MM:SS

 

Get an entry

Request parameters

action=get
module=sobipro
resource=entries
id=<N>

Example

<end-point>?action=get&module=sobipro&resource=entries&id=<N>

Example (REST format)

<end-point>/get/sobipro/entries/<N>

Response

{
    "status": "ok",
    "id": "<entry id>",
    "nid": "<entry nid>",
    "name": "<entry name>",
    "owner": "<entry owner id>",
    "section": "<entry section id>",
    "counter": "<counter>",
    "createdTime": "<created time>",
    "updatedTime": "<updated time>",
    "metaDesc": "<meta description>",
    "metaKeys": "<meta keywords>",
    "metaAuthor": "<meta author>",
    "metaRobots": "<meta robots>",
    "version": "<version number>",
    "fields": [
        {
            "name": "<field name>",
            "fid": "<field id>",
            "nid": "<field nid>",
            "sid": "<field sid>",
            "section": "<section id>",
            "lang": "<language code>",
            "_data": "<field data>",
            "_rawData": "<field raw data>",
            "fieldType": "<field type>",
            "isFree": "<is free>",
            "position": "<position>"
        },
        ...
        {
            "name": "<field name>",
            "fid": "<field id>",
            "nid": "<field nid>",
            "sid": "<field sid>",
            "section": "<section id>",
            "lang": "<language code>",
            "_data": "<field data>",
            "_rawData": "<field raw data>",
            "fieldType": "<field type>",
            "isFree": "<is free>",
            "position": "<position>"
        }
]}

Notes

Created and updated date format is YYYY-MM-DD HH:MM:SS

 

Plugin Settings

jBackend SobiPro Plugin Settings

The following options are available for user plugin:

Option Description
JSON Entries Enable JSON payload on entries action.
Page 1 of 2