Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Implémentation d'une ressource côté client Python

Le client PYTHON permet, tout comme le client JAVA/Groovy détaillé précédemment, de communiquer avec l'API Web Cytomine. Ce client a vocation d'être intégré comme une librairie dans des applications écrites en PYTHON. Il fonctionne exactement de la même manière que le client JAVA/Groovy :

  • Il contient un objet Cytomine qui effectue les requêtes HTTP et propose des méthodes pour manipuler les ressources : addUser(...), editUser(...), removeUser(...), addAnnotation(...), ...
  • Il est nécessaire de définir un Model par ressource.

Les petites différences qui apparaissent entre les différents clients sont majoritairement imposées par les contraintes des langages de programmation utilisés. Sans refaire tout le cheminement fait précédemment pour le client JAVA/Groovy, nous décrivons ici la manière de définir un modèle écrit en PYTHON pour la ressource user.

Super-classe Modèle : chaque modèle doit étendre cette classe
#Models
class Model(object):

   def __init__(self, params = None):
       if (params != None):
           self.parse(params)

   def parse(self, params = None):
       obj = json.loads(params)
       print obj
       self.__dict__ = obj

   def toJSON(self):
       return json.dumps(self.__dict__)

   def isNew(self):
       return not hasattr(self, "id")
Définition d'un modèle User au sein du client PYTHON
class User(Model):

   def __init__(self, params = None):
       super(User, self).__init__(params)
       self._callback_identifier = "user"

   def toURL(self):
       if (hasattr(self, "id")):
           return "user/%d.json" % self.id
       else:
           return "user.json"

   def __str__( self ):
       return "User : " + str(self.id)
Exemple d'utilisation du client PYTHON
[...]
cytomine = Cytomine("http://localhost:8080", "dupond", "pass") 

//Ajout de l'utilisateur johndoe
user = cytomine.addUser("johndoe", "Password","John", "Doe") 

//Affichage du nom/prénom de tous les utilisateurs
users = cytomine.getUsers()
for user in users.data():
    print "%s %s" % (user.firstname,user.lastname)

[...]
  • No labels