Tried to find a way to visualize, I’d like to have some feedback on that and the API content.
GET, POST, PATCH, DELETE
v ^ + -
v... /notebook
|
v... /- api :html doc
|
v^.. /- book
| |
v.+. | /- {book}
| | Q
v... | | +- ?page[number]=n
| | +- &page[size]=n
| | +- ?|&filter[date-from]={ts}
| | +- &filter[date-to]={ts}
| | +- &sort=-ts :defaults to latest date first
| | +- &fields[note]={},.,{} <- title|body|ts
| | Q
..+. | | +- &fields[book]={},.,{} <- book|about
| |
v^.. | /- notes
| | | |
| | | -> 303 redirect /notebook/{book}?page=1&sort=-ts
| | |
v.+. | | /- {id}
| | | Q
v... | | | +- &fields[note]={},.,{} <- title|body|ts
| | | Q
..+. | | | +- &fields[note]={} <- ts_eol|title|body|ref
| | |
v... | | /- history
| | | Q
v... | | | +-- &fields[note]={},.,{} <- title|body|ts
| | |
v.+. | | ( /- relationships/note/{id} )
| | |
v... | | /- thread
| | Q
v... | | +-- &fields[note]={},.,{} <- title|body|ts
| |
v.+. | ( /- relationship/note/{id} )
|
v... /- feed
| |
v... | /- atom
| | |
v... | | /- book :last 10 notes of all books
| | |
v... | | /- {book} :last 10 notes of book
| |
v... | /- rss
| | |
v... | | /- book
| | |
v... | | /- {book}
| |
v... | /- stream :sse
| |
| -> notebook
| -> notebook:{book}
|
v... /- search
Q
+-- ?q={...} <-- SQLite fts5 options
|
+- &filter[book]={},.,{}
+- &filter[note]={} <-- title|body
+- &page[number]=n
+- &page[size]=n