Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rework the REST API and increase the cardinality of the back-end from one to many. #3

Closed
AlexanderMihail opened this issue Apr 11, 2024 · 1 comment
Assignees

Comments

@AlexanderMihail
Copy link
Owner

The / route should just present HTML help with demo links to do all the rest.

AlexanderMihail pushed a commit that referenced this issue Apr 13, 2024
… table as well as any other user-table. The root of the web server is a generated HTML page with navigation for all the system features. There is now a map of tables. Selecting the current table is with the /tablename/?use rest command. Tables can also be dropped. Table::compact was reworked to shift-up deleted keys in the index. An index_revolver coroutine was introduced to return one index per invocation. This logic also has index cleanup capabilities. The Table::list() command uses this coroutine to produce the list of all keys. Table::get/set are now boolean. The set prevents overinserting and updating of unknown keys. The get returns false if the key is unknown. This allows now for inserting or updating "null" values. Better statistics. Better formatted output. All REST logic is in one DefaultHandle where the table list lock is maneaged. Everything the DB server does is listed in the / page which is built by DefaultHandle::build_help. Added the new Table::self_test method and the corresponding /?selftest=0 REST command. This system of self-testing obsoletes the rest.bat file while also aiming at raw performance.

This version has problems with deleting keys that are in cache. TODO.
This version closes issues: #1, #2, #3, #4, #5, #6, #8. It advances on issues #13 and #11.
@AlexanderMihail
Copy link
Owner Author

Done. Please see the new /?use, /?drop, and /People/?use.
These newly revised REST APIs allow creating/droping/using other tables. Linked-in examples are for tables People and Places. The Master table can also be dropped and recreated. All table-oriented commands such as for insert, update, delete, stats, list, etc are targeting the table that is currently in use with the /?use command.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant