(: Aiche Tee Tee Pee :)
Perhaps the first webserver in Tree Calculus? Sure, it's married to a Haskell IO runtime... but we're managing all of the actual webserver semantics in tricu! This includes a demo Arboricx application server that is capable of storing and serving bundles.
This commit is contained in:
21
demos/interactionTrees/arboricx-server.tri
Normal file
21
demos/interactionTrees/arboricx-server.tri
Normal file
@@ -0,0 +1,21 @@
|
||||
!import "../../lib/io.tri" !Local
|
||||
!import "../../lib/arboricx/server.tri" !Local
|
||||
|
||||
-- Arboricx HTTP registry server demo.
|
||||
-- Run with --allow-write ./store --allow-read ./store
|
||||
--
|
||||
-- Endpoints:
|
||||
-- GET /_arboricx/health -> "OK"
|
||||
-- POST /_arboricx/bundles -> upload bundle, returns hash
|
||||
-- GET /_arboricx/bundle/hash/:h -> download bundle by hash
|
||||
--
|
||||
-- Example usage:
|
||||
-- curl http://localhost:9050/_arboricx/health
|
||||
-- curl -X POST --data-binary @mybundle.arboricx http://localhost:9050/_arboricx/bundles
|
||||
-- curl http://localhost:9050/_arboricx/bundle/hash/<hash>
|
||||
|
||||
main = io (thenIO
|
||||
(putStrLn "Starting Arboricx server on 127.0.0.1:9050")
|
||||
(thenIO
|
||||
(void (ensureStore "/tmp/store"))
|
||||
(arboricxServer "/tmp/store" "127.0.0.1" 9050)))
|
||||
Reference in New Issue
Block a user