JSON
Document Type: Explanation
Handling JSON requests
:| json
;; <etc> ;;
= (asJsonRow m)
# datacase m
* JVEC|v | SOME v
* _ | NONE
= (asJsonNum m)
# datacase m
* JNUM|n | SOME n
* _ | NONE
(bindMaybe mVal k)=(maybeCase mVal NONE k)
;; <etc> ;;
= (parseFract jsonBS)
@ res@[json leftover] (parseJson jsonBS)
: rw < **bindMaybe (asJsonRow json)
: w < **bindMaybe (asJsonNum idx-0-rw)
: h < **bindMaybe (asJsonNum idx-1-rw)
| SOME [w h]
;; <etc> ;;
# switch method
* POST
# switch path
* b#{/fract}
# datacase (parseFract body)
* NONE
: _ < fork (syscall (**HTTP_ECHO rid 400 b#bad [] b#{}))
| return ()
* (SOME dims)
@ [w h] dims
: !fractBar < trkTimer {mandelbrotDemo} (mandelbrotDemo w h)
: _ < fork (syscall (**HTTP_ECHO rid 200 b#ok [] fractBar))
| return ()
;; <etc> ;;Responding with JSON
Last updated