From 882b5b155157d3a3c9e329fffcf7ff3fdf64d4ee Mon Sep 17 00:00:00 2001 From: Christine Dodrill Date: Tue, 8 Sep 2015 15:48:06 -0700 Subject: [PATCH] Add new X-API-Options header for bare replies Setting X-API-Options to bare will return unpacked values. $ curl --header "X-API-Options: bare" http://127.0.0.1:5000/last_aired { "name": "Do Princesses Dream of Magic Sheep?", "air_date": 1436628600, "season": 5, "episode": 13, "is_movie": false } --- ponyapi.nim | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/ponyapi.nim b/ponyapi.nim index 1c320bb..0e2bdcf 100644 --- a/ponyapi.nim +++ b/ponyapi.nim @@ -51,9 +51,16 @@ proc `%%`(why: string): JsonNode = "error": why } +proc `%`(why: string): JsonNode = + %%why + template httpReply(code, body: expr): expr = ## Make things a lot simpler for replies, etc. - resp code, myHeaders, pretty(%%body, 4) + if request.headers["X-API-Options"] == "bare": + # New "bare" reply format, easier to scrape, etc. + resp code, myHeaders, pretty(%body, 4) + else: + resp code, myHeaders, pretty(%%body, 4) let myHeaders = { "Content-Type": "application/json",