JSON/REST API for simple addition in several languages and a hello world web page.
echo '{"operands": [100,25]}' | curl -d@- localhost:9000/add
import json | |
def application(environ, start_response): | |
request_body_size = int(environ.get('CONTENT_LENGTH', 0)) | |
request_body = environ['wsgi.input'].read(request_body_size) | |
request_json = json.loads(request_body) | |
response = { "result": 0 } | |
for value in request_json['operands']: | |
response['result'] += value | |
start_response('200 OK', [('Content-Type', 'application/json')]) | |
yield str.encode(json.dumps(response)) |
import json | |
def application(environ, start_response): | |
request_body_size = int(environ.get('CONTENT_LENGTH', 0)) | |
request_body = environ['wsgi.input'].read(request_body_size) | |
request_json = json.loads(request_body) | |
response = { "result": 0 } | |
for value in request_json['operands']: | |
response['result'] += value | |
start_response('200 OK', [('Content-Type', 'application/json')]) | |
yield str.encode(json.dumps(response)) |
require "json" | |
app = Proc.new do |env| | |
result = nil | |
body = JSON.parse(env["rack.input"].read) | |
body["operands"].each { |operand| | |
result.nil? ? result = operand : result += operand | |
} | |
["200", { | |
"Content-Type" => "application/json; charset=utf-8", | |
}, [JSON.pretty_generate({'result' => result})]] | |
end; | |
run app |
{ | |
"listeners": { | |
"*:9000": { | |
"pass": "routes" | |
} | |
}, | |
"routes": [ | |
{ | |
"match": { | |
"uri": "/add" | |
}, | |
"action": { | |
"pass": "applications/add" | |
} | |
}, | |
{ | |
"action": { | |
"share": "/var/www/demo/html$uri" | |
} | |
} | |
], | |
"applications": { | |
"add": { | |
"type": "python", | |
"path": "/var/www/demo/", | |
"module": "add" | |
} | |
} | |
} |
<head> | |
<title>Hello world!</title> | |
</head> | |
<body> | |
<h1>Hello world!</h1> | |
<p> | |
Powered by NGINX Unit | |
</p> | |
</body> |