2009-08-17 3 views
8

J'en écris un nouveau (pour Netflix), et je me demande simplement s'il y a de bonnes bibliothèques de référence à étudier.Quelqu'un peut-il suggérer un wrapper Python bien conçu d'une API REST?

En particulier je cherche des manières intelligentes d'exprimer un seul point de terminaison REST dans le code, qui nécessite au moins une URL, une méthode et des paramètres, et dans le cas de Netflix, des informations sur le niveau d'authentification requis. Pour être clair, je suis à la recherche de bibliothèques Python idiomatiques et bien écrites couvrant les API REST. Si la bibliothèque flambe rapidement, mais est difficile à utiliser et/ou mal écrite, je suis probablement moins intéressé.

+0

À l'exception d'urllib2? –

Répondre

1

Ceci est une question vraiment ancienne, mais comme j'y suis encore arrivé, j'ai pensé que je fournirais une réponse rapide.

J'ai utilisé un peu le GitHub3 wrapper et j'ai toujours été très impressionné par la documentation. Un problème avec l'utilisation comme guide est que c'est absolument énorme.

Une autre bonne enveloppe est le Gdax-python wrapper pour accéder à l'échange Gdax pour cryptocurrencies. Bien qu'il manque sérieusement de documentation dans le code et que je n'aime pas avoir des clients séparés pour les appels API publics et les appels d'API authentifiés, je l'ai toujours trouvé remarquablement facile à utiliser. Je suis sûr qu'il y en a beaucoup d'autres, mais beaucoup de celles que j'ai utilisées tombent dans des pièges majeurs. Quelques recommandations personnelles:

  • ont une classe unique client qui gère toutes les communications

  • a mis en place un objet requests.Session client() pour mettre en place toutes auth/informations en-tête pour tous les appels

  • utilise une seule fonction de classe _make_requests qui assemble l'URL, envoie la requête et gère tous les différents codes d'état HTTP pouvant être renvoyés.