2017-06-08 5 views
0

J'expérimente avec Tornado et je ne savais pas comment prendre en charge deux points d'extrémité API REST différents. Dites que je veux soutenir "/" et "/ Hello". Sur la base de la documentation initiale, j'ai trouvé cela, dois-je créer une classe de gestionnaire pour chaque point final?Points d'extrémité Tornado

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

Répondre

0

Oui, c'est la bonne façon d'implémenter plusieurs points de terminaison.

0

Il n'est pas nécessaire d'avoir un gestionnaire distinct pour chaque extrémité. Pratiquement un seul objet RequestHandler peut desservir n'importe quel nombre de points de terminaison.

Il s'agit donc pour vous d'une décision de conception, que vous souhaitiez traiter plusieurs demandes avec un seul RequestHandler ou que vous l'ayez correctement fait ci-dessus.

Dans le cas ci-dessus si vous choisissez d'utiliser MainHandler pour les deux points de terminaison, il ressemblera simplement à ceci.

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