-
Notifications
You must be signed in to change notification settings - Fork 27
JSON API
Akeeba Release System integrates with the Joomla! API application. For an introduction to the API please take a look at the Joomla Community Magazine article on the Joomla API Application and the Joomla API Specification.
We contributed the “User - Joomla Token” authentication method to Joomla for secure authentication to the Joomla API using a token.
The ARS JSON API allows you to automate software releases on your site. It's very strongly recommended that you use, or at least take a look at the code of, the Akeeba Release Maker application as the canonical implementation of an API consumer for software release automation.
Like all Joomla API endpoints, the ARS endpoints support the following HTTP verbs:
-
GETLists a record or a collection of records. -
POSTCreate a new record. -
PATCHModify an existing record. -
DELETEDelete a record. Note that this is a destructive, irreversible operation!
Using a bare endpoint, e.g. v1/ars/categories, is only possible with GET to get a list of items or POST to create a new record.
Using an endpoint followed by a record's numeric id, e.g. v1/ars/categories/123, operates on the specific record. Therefore you can use it with GET to read the specific record, PATH to modify the record or DELETE to delete the record.
The fields returned match the database table fields. GETting a list of records will include additional fields, typically giving you the human readable title of the language, access level, category and release of a record as applicable.
Important notice about PATCH requests. Joomla expects you to send the full record data in each PATCH request. You CAN NOT just send the fields you want to modify. Furthermore and against the JSON API standard, Joomla does NOT return the new state of the record. You will need to do a GET request to determine whether the record has been updated. These have already been reported as bugs and will likely be resolved in a future release of Joomla.
Super User access required. The Joomla API application is currently only available for Super Users only. This means that you need to provide the Joomla Token of an enabled Super User account to work with the API. As a result we have not been able to do a whole lot of access control tests with the API application implementation. Should the Joomla API application start supporting other user groups we will need to perform further tests to ensure that the access controls in the API application integration of Akeeba Releases System match those used in the HTML (Site and Administrator) Joomla applications.
Endpoint: v1/ars/categories
Manage the ARS Categories
URL parameters (optional):
-
searchString. Filter by a partial match to their title or description. -
publishedInteger (0/1). Filter by published or unpublished status. -
show_unauth_linksInteger (0/1). Filter by Show Unauthorized Links status. -
supportedInteger (0/1). Filter by The Software Is Still Supported status. -
accessInteger or array of integers. Filter by items accessible by any of the provided Joomla access levels. -
languageString. Filter by the specific language code (*means “All languages”).
Endpoint: v1/ars/releases
Manage the ARS Releases
URL parameters (optional):
-
searchString. Filter by a partial match to the release's version or description. Use the formversion:1.2.3to only list the releases matching the version number (in this example1.2.3) exactly. The difference is that without theversion:prefix something like1.2.3would also match11.2.3,1.2.30and1.2.3.a1. -
category_idInteger. Filter by releases belonging to the specified Category given the Category's numeric ID. -
publishedInteger (0/1). Filter by published or unpublished status. -
maturityString (stable, rc, beta, alpha). Filter by releases matching the specific maturity. -
minMaturityString (stable, rc, beta, alpha). Filter by releases whose maturity is the given string or something more stable. For example, givingbetawill match releases withbeta,rcandstablematurity. -
show_unauth_linksInteger (0/1). Filter by Show Unauthorized Links status. -
accessInteger or array of integers. Filter by items accessible by any of the provided Joomla access levels. -
languageString. Filter by the specific language code (*means “All languages”). -
latestInteger (0/1). Only show the latest releases in each category. Use this by itself or withcategory_idbut NOT any other filters. In any other case the results are unpredictable!
Endpoint: v1/ars/items
Manage the ARS Items
URL parameters (optional):
-
searchString. Filter by a partial match to the item's title or description. Use the formfile:somethingto only match items with theirtypeset tofileand their filename's basename matching exactlysomething. Use the formurl:somethingto only match items with theirtypeset tolinkand their URL's basename matching exactlysomething. -
category_idInteger. Filter by items belonging to the specified Category given the Category's numeric ID. -
release_idInteger. Filter by items belonging to the specified Release given the Release's numeric ID. -
publishedInteger (0/1). Filter by published or unpublished status. -
show_unauth_linksInteger (0/1). Filter by Show Unauthorized Links status. -
accessInteger or array of integers. Filter by items accessible by any of the provided Joomla access levels. -
languageString. Filter by the specific language code (*means “All languages”).
Copyright (C) 2010-2017 Akeeba Ltd.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section "GNU Free Documentation License".
Introducing Akeeba Release System
- Understanding the structure of a repository
- Category management
- Release management
- Item management
- Environment management
- Download IDs
- Viewing the logs
- Component options