Passer au contenu principal
Dans le cadre du Scénario d’architecture serveur + API, nous expliquerons comment mettre en œuvre le processus serveur en Python. Veuillez consulter le document Scénario d’architecture serveur + API pour en savoir plus sur la solution mise en œuvre. Le code source complet de l’implémentation Python du processus serveur est disponible dans ce dépôt GitHub.

Obtenir un jeton d’accès

Pour effectuer la requête HTTP vers le point de terminaison d’API Auth0 /oauth/token, nous utiliserons les bibliothèques jsonurllib et urllib2. Voici notre exemple d’implémentation : Pour tester cela, modifiez votre code pour afficher la variable access_token, puis exécutez la commande python cron.py.

Appeler l’API

Les étapes de notre implémentation sont les suivantes :
  • Construire un objet JSON contenant les données de la feuille de temps et l’affecter à une variable timesheet.
  • Ajouter l’URL de l’API et le contenu de la variable timesheet au corps de la requête à l’aide de urllib2.Request.
  • Ajouter l’en-tête Authorization à la requête.
  • Définir l’en-tête Content-Type sur application/json.
  • Appeler l’API à l’aide de urllib2.urlopen et prévoir une gestion des erreurs. Récupérer la réponse à l’aide de json.loads et l’afficher dans la console.
Voici notre exemple d’implémentation (une partie du code est omise par souci de concision) :
def main():
  # importer les bibliothèques - code omis

  # Valeurs de configuration - code omis

  # Obtenir un jeton d'accès depuis Auth0 - code omis

  #Soumettre une nouvelle feuille de temps à l'API
  timesheet = {'user_id': '007',
                          'date': '2017-05-10T17:40:20.095Z',
                          'project': 'StoreZero',
                          'hours': 5}
  req = urllib2.Request(api_url, data = json.dumps(timesheet))
  req.add_header('Authorization', 'Bearer ' + access_token)
  req.add_header('Content-Type', 'application/json')

  try:
    response = urllib2.urlopen(req)
    res = json.loads(response.read())
    print 'Created timesheet ' + str(res['id']) + ' for employee ' + str(res['user_id'])
  except urllib2.HTTPError, e:
    print 'HTTPError = ' + str(e.code) + ' ' + str(e.reason)
  except urllib2.URLError, e:
    print 'URLError = ' + str(e.reason)
  except httplib.HTTPException, e:
    print 'HTTPException'
  except Exception, e:
    print 'Generic Exception' + str(e)

# Code standard pour appeler la fonction main() - code omis
Pour tester ceci, assurez-vous que votre API est en cours d’exécution, puis lancez le processus à l’aide de python cron.py. C’est tout ! Vous avez terminé !