龙卷风终点

时间:2017-06-08 14:58:30

标签: python rest tornado endpoints

我正在尝试使用Tornado并且不确定如何支持两个不同的REST API端点。说我想支持“/”和“/ Hello”。根据我提出的初始文档,我是否需要为每个端点创建一个处理程序类?

import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
  def get(self):
    self.write("Hello, Tornado")

class SecondHandler(tornado.web.RequestHandler):
  def get(self):
    self.write("<em>Hello, Second Handler!</em>")

def make_app():
  return tornado.web.Application([
    (r"/", MainHandler),
    (r"/Hello", SecondHandler)
  ])

if __name__ == "__main__":
  app = make_app()
  app.listen(8888)
  tornado.ioloop.IOLoop.current().start()

2 个答案:

答案 0 :(得分:0)

是的,这是实现多个端点的正确方法。

答案 1 :(得分:0)

没有必要为每个端点都有一个单独的处理程序。实际上,单个RequestHandler对象可以为任意数量的端点提供服务。

因此,无论您是想使用单个RequestHandler还是上面正确完成的方式提供多个请求,这都是您的设计决定。

在上述情况下,如果您选择对两个端点使用MainHandler,那么它将看起来像这样。

 def make_app():   
     return tornado.web.Application([
     (r"/", MainHandler),
     (r"/Hello", MainHandler)   ])