Comment puis-je passer mes parameters d’URL en tant que variables dans une API RESTful à l’aide de Python

J’ai écrit le code back-end pour récupérer des informations à partir d’une API existante qui passe dans trois entrées (atsortingbute1, atsortingbute2 et API_key) pour renvoyer un document JSON.

J’essaie maintenant d’utiliser le module web.py pour me connecter à un serveur sur le port 8080 en utilisant Python. Je conçois une API RESTful et je souhaite intégrer les parameters saisis par l’utilisateur dans l’URL et les transmettre en tant qu’arguments dans la fonction ci-dessus pour renvoyer le document JSON.

Ceci est mon code de serveur Web simple.

import web import existing_api atsortingbute1 = ' ' atsortingbute2 = ' ' api_key = ' ' url = ('/existingapi/'+atsortingbute1+'/'+atsortingbute2+'/'+api_key, 'index') #print url class index: def GET(self): return existing_api.resortingeveInfo(atsortingbute1, atsortingbute2, api_key) if __name__ == '__main__': app = web.application(url, globals()) app.run() 

J’ai écrit mon code back-end dans existing_api.py et j’aimerais qu’un utilisateur puisse entrer “localhost: 8080 /: atsortingbute1 /: atsortingbute2 /: api_key” dans le navigateur et renvoyer existing_api.resortingeveInfo (atsortingbute1, atsortingbute2 , clé API). Quelle est la meilleure approche pour ce faire?

En outre, lorsque j’essaie de coder en dur les atsortingbuts et api_key, l’URL renvoie un message “introuvable”. Cependant, si je change le code pour l’url:

 url = ('/existingapi/'+atsortingbute1+'/'+atsortingbute2+'/'+api_key, 'index') 

lire

 url = ('/', 'index') 

sans les atsortingbuts et tapez localhost: 8080, je reçois les informations que je recherche dans les atsortingbuts codés en dur. Quelqu’un peut-il expliquer pourquoi c’est le cas? Merci.

Secondé C’est ce que fait vraiment Flask (et django bien que ce soit un cadre beaucoup plus grand pour quelque chose de si simple). Ne réinventez pas la roue si vous n’en avez pas besoin (peut-être avez-vous besoin de le faire?)