#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Simple REST Server
import json
import sys
import time
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
import tornado.httputil
from tornado.options import define, options
define("port", default=8000, help="run on the given port",
type=int)
#curl --dump-header - http://192.168.10.43:8000/get
class GetHandler(tornado.web.RequestHandler):
def get(self):
resp =
json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
self.write(resp)
#curl --dump-header - http://192.168.10.43:8000/get2
class Get2Handler(tornado.web.RequestHandler):
def set_default_headers(self):
print("set_default_headers")
self.set_header("Content-Type", 'application/json')
def get(self):
resp =
json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
self.write(resp)
#curl -X POST -H "Content-Type: application/json" -d
'{"Name":"hogehoge1973", "Age":"100"}'
http://192.168.10.43:8000/post
class PostHandler(tornado.web.RequestHandler):
def post(self):
#print("{}".format(self.request.body))
function =
sys._getframe().f_code.co_name
dict =
tornado.escape.json_decode(self.request.body)
print("{}
dict={}".format(function, dict))
print("Name={}".format(dict['Name']))
print("Age={}".format(dict['Age']))
resp =
json.dumps(['result', 'ok'])
self.write(resp)
#curl -X PUT -H "Content-Type: application/json"
http://192.168.10.43:8000/put/fugafuga/100
class PutHandler(tornado.web.RequestHandler):
def put(self, Name, Age):
print("Name={}".format(Name))
print("Age={}".format(Age))
resp =
json.dumps(['result', 'ok'])
self.write(resp)
#curl -X DELETE -H "Content-Type: application/json"
http://192.168.10.43:8000/delete/gehogeho1926
class DeleteHandler(tornado.web.RequestHandler):
def delete(self, Name):
print("Name={}".format(Name))
resp =
json.dumps(['result', 'ok'])
self.write(resp)
if __name__ == "__main__":
tornado.options.parse_command_line()
app =
tornado.web.Application(
handlers=[
(r"/get", GetHandler),
(r"/get2", Get2Handler),
(r"/post", PostHandler),
(r"/put/(.*)/(.*)", PutHandler),
(r"/delete/(.*)", DeleteHandler),
],debug=True
)
http_server =
tornado.httpserver.HTTPServer(app)
http_server.listen(options.port)
tornado.ioloop.IOLoop.current().start()
|