2013-06-15 4 views
0

J'ai travaillé sur l'implémentation d'une API de test dans CherryPy.Chemin introuvable dans CherryPy

J'ai lu quelques forums, tutoriels et Rassemblé le code que l'ancien développeur Python au travail avait écrit et voici ce que j'ai:

import json 
import cherrypy 

class person: 
    def default(self, *args): 
     r = { 
      'firstName': args[0], 
      'lastName': args[1], 
      'age': args[2] 
     } 
     return json.dumps(r) 
    default.exposed = True 

class api: 
    def __init__(self): 
    self.person = person() 

class Root: 
    def __init__(self): 
     self.api = api() 

conf = { 
    '/': { 'request.dispatch': cherrypy.dispatch.MethodDispatcher()} 
} 

cherrypy.config.update(conf) 
cherrypy.tree.mount(Root()) 
cherrypy.quickstart() 

Le résultat de l'exécution de ce code est l'erreur suivante:

404 Not Found

The path '/api/person/Blake/Williams/27' was not found.

Traceback (most recent call last): File "/Users/blakewilliams/Programming/Practice/Python/VirtualEnv/foo/lib/python2.7/site-packages/cherrypy/_cprequest.py", line 656, in respond response.body = self.handler() File "/Users/blakewilliams/Programming/Practice/Python/VirtualEnv/foo/lib/python2.7/site-packages/cherrypy/lib/encoding.py", line 188, in call self.body = self.oldhandler(*args, **kwargs) File "/Users/blakewilliams/Programming/Practice/Python/VirtualEnv/foo/lib/python2.7/site-packages/cherrypy/_cperror.py", line 386, in call raise self

NotFound: (404, "The path '/api/person/Blake/Williams/27' was not found.")

Je ne suis pas sûr de ce que je fais mal ... Merci d'avance pour toute aide.

Répondre

1

Si vous démarrez votre serveur cherrypy comme celui-ci, il fonctionne:

cherrypy.quickstart(cherrypy.Application(Root()), '/', {}) 

! Mise en garde: Le chemin que vous indiquez est toujours introuvable: vous oubliez le niveau api:

http://127.0.0.1:8080/api/person/Blake/Williams/27 
+0

Merci pour la réponse. Cela semblait faire l'affaire. –