mmm / 186c5d9
add ba_log entry 2019-10-07 s-ol 3 years ago
1 changed file(s) with 40 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
0 Today I started working on the HTTP server that finds, converts and serves content stored in the (SQL) backend just-in-time (later the server could also cache content).
2 The server can handle these types of requests:
4 ## Fileder Index Requests
5 A request like `GET /path/to/fileder/` (note the trailing slash) is used to query the contents of a fileder.
6 It solicits a JSON-encoded response that contains the full paths to all children of this fileder, as well as all facets currently stored, e.g:
8 {
9 "children": [
10 "/projects/vcv_mods",
11 "/projects/HowDoIOS",
12 "/projects/iii-telefoni",
13 "/projects/btrktrl",
14 "/projects/demoloops",
15 "/projects/VJmidiKit",
16 "/projects/gayngine",
17 "/projects/themer",
18 "/projects/chimpanzee_bukkaque"
19 ],
20 "facets": [
21 ["", "text/moonscript -> fn -> mmm/dom"],
22 ["name", "alpha"],
23 ["title", "text/plain"]
24 ]
25 }
27 ## Facet Requests
28 A request like `GET /path/to/fileder/facet_name` is used to query a facet.
29 To differentiate a request for the 'unnamed' facet from an index request, unnamed facets are represented as a `:` character instead.
30 The type to ask for can be specified in a `MMM-Accept` header separately, it defaults to `text/html`.
32 The server either sends back the (possibly converted) facet with a `200 OK` status,
33 or a `406 Not Acceptable` error if no conversion was possible.
35 I also restructured the code a bit and moved some of the HTML-rendering code into the main mmmfs code.
36 Then I renamed the `text/html` type to `text/html+frag`, since it refers to only a fragment of HTML code, not a whole document,
37 and added a new *convert* from `text/html+frag` to `text/html` that wraps the fragment in the HTML template and style.
39 the full code change is in commits [81e143f]( and [ad26c7c](