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> |