To reduce dependency on Apache (and thus opening JAS up for other webservers) the htaccess+modrewrite rule should be moved to JAS. This also allows the configuration to more easily enable/disable the functionality.
Currently JAS uses the Data field values to build up the WHERE clause in the SQL query (and Storage::_filterDataset) in a straightforward but limited way. It should be possible to get data via a more flexible method that allows for advanced nesting.
Example:
SELECT *
FROM blog_entries
LEFT JOIN blog_tagsmapping ON
blog_entries.nr=
blog_tagsmapping.blog_entries --automagically determined based on where clause
LEFT JOIN blog_tag...
JAS should support PostgreSQL (and optionally other databases). The post sensible way seems to be to have a base SQL class which contains the majority of the query components (SELECT, INSERT, UPDATE, DELETE, FROM, WHERE, ORDER BY, etc) which can be overridden by the extending classes.
An interesting option would be to use PDO for the base class as this will support more than just MySQL and PostgreSQL. Additionally it allows for "named variables" for prepared statements which should m...
Currently when setting the 1:* reference field value the MySQL use referenced field instead of the ID field of the referenced module. Using the former is rather useless since that's effectively the ID field of the original module.
So change:
FROM `module`
LEFT JOIN `referenceModule` ON `module`.`nr`=`referenceModule`.`referenceField`
WHERE referenceModule
`.`referenceField
`="123"
To:
FROM `module`
LEFT JOIN `referenceModule` ON `module`.`nr`=`referenceModule`.`referenceFi...
JAS should support JSON parsing and rendering which in turn can be used for a full-fledged read/write API. The JavaScript HTTP class should be extended to support this as well.
Currently only the initial installation is foreseen, however upgrades should be easy to install as well. This could be handled in a similar fashion as plugins, i.e. download the latest version and upgrade JAS using the backend.
Generally show_from+show_total are used to split data over multiple pages. As such it's seems logical to support this natively. If show_page is set it should be used to calculate show_from (show_page * show_total) prior to getting the data (and thus overwriting the set show_from). When the data is gathered and show_count is set this value should be used to calculate show_pages ( ceil ( show_count / show_total)).