2017-06-08 1 views
0

私はトルネードを試していますが、2つの異なる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() 

答えて

0

はい、これは複数のエンドポイントを実装する正しい方法です。

0

エンドポイントごとに別々のハンドラを持つ必要はありません。実際には、単一のRequestHandlerオブジェクトで任意の数のエンドポイントを処理できます。

これは、1つのRequestHandlerで複数のリクエストを処理したい場合でも、正しく実行した場合でも、設計上の決定です。

上記のケースでは、両方のエンドポイントでMainHandlerを使用することを選択した場合、このようになります。

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