- From: Mark Nottingham <mnot@mnot.net>
- Date: Mon, 16 Sep 2024 10:41:15 -0400
- To: Will Hawkins <hawkinsw@obs.cr>
- Cc: ietf-http-wg@w3.org
Thanks, Will - that's exciting.
This makes me wonder if some work on QUERY prototyping / interop might be useful at the next hackathon...
Cheers,
> On 14 Sep 2024, at 11:52 PM, Will Hawkins <hawkinsw@obs.cr> wrote:
>
> Hello everyone!
>
> I just wanted to share a quick note about some work that I was doing
> to add QUERY support to freenginx. I hope that here is a decent place
> to post. I apologize if it is unhelpful.
>
> I have been working on adding support for QUERY to freenginx. As it
> stands, I have added support for the QUERY method. That alone, did not
> provide anything really _useful_ so I wrote a module that would
> _roughly_ emulate the examples in the current draft. The module is a
> front end for a SQLite database.
>
> The server is running on `query.obs.cr` and you can use curl to make
> QUERY requests. There are three tables available now in the database:
> ietf, contacts and contact (sic).
>
> The schema for `ietf` is
>
> ```SQL
> CREATE TABLE ietf (wg_name text, wg_descr text);
> ```
>
> The schema for `contact` is
>
> ```SQL
> CREATE TABLE contact ("name" text, "handle" text);
> ```
>
> and the schema for `contacts` is
> ```SQL
> CREATE TABLE contacts (surname text, givenname text, email text);
> ```
>
> The tables contain only little bits of data and the data attempts to
> match the examples in the draft:
>
> ietf:
> | wg_name | wg_descr|
> | -- | -- |
> | httpbis | HTTP working group |
>
> contacts:
> | surname | givenname | email |
> | -- | -- | -- |
> |Smith|John|john.smith@example.org|
> |Jones|Sally|sally.jones@example.org|
> |Dubois|Camille|camille.dubois@example.org|
>
> contact:
> | name | handle |
> | -- | -- |
> | will | hawkinsw |
>
> (Sorry, I had to throw myself in there somehow!)
>
> The server currently works by extracting the final part of the URI's
> path and treating that as the name of the table to complete the SQL
> query embedded in the body of the QUERY request (like several of the
> draft's examples). So, if you wanted to see how it looks, you can use
> curl
>
> ```bash
> $ curl -X QUERY https://query.obs.cr/this/is/contact/ -d "select name, handle"
> ```
> ```bash
> $ curl -X QUERY https://query.obs.cr/is/contact/ -d "select name, handle"
> ```
> and
> ```bash
> $ curl -X QUERY https://query.obs.cr/contact/ -d "select name, handle"
> ```
>
> will all result in
>
> ```
> will,hawkinsw,
> ```
>
> If anyone is interested in knowing more about this lark, please let me
> know! I would be more than happy to share. If you think that there are
> things that would be good to add, please let me know that, too! I am
> more than happy to add anything that would be helpful. My plan is to
> put something like this description on https://query.obs.cr but that
> might not be done before Monday. So, I wanted to post this here.
>
> Thanks for all the work that you all are doing!
>
> Sincerely,
> Will
>
>
--
Mark Nottingham https://www.mnot.net/
Received on Monday, 16 September 2024 14:41:20 UTC