Python Base class per istanziare il modulo di query API

1

Quindi sto scrivendo un datamodel in python che interagisce con un modulo python che interroga l'API.

class QueryAPI():
   def __init__(self, clientid, clientsecret):
      self.clientid = clientid
      self.clientsecret = clientsecret
   def create_user_info(self, name, address):
        ......



class MyModel(object):
   def __init__(self, name, address);
      self.name = name
      self.address = address
   def commit():
      create_user_info(name, address)

e questa api ha molte più funzioni che saranno usate dai miei altri datamodels. In questo momento, mi chiedo dove dovrei creare un'istanza di questo oggetto QueryAPI. Ha senso avere una classe base che la istanzia e che tutti i miei modelli di dati accedano da lì?

    
posta paris_serviola 07.07.2016 - 17:08
fonte

1 risposta

0

È possibile utilizzare il concetto di un oggetto di connessione (simile a come funzionano le librerie di driver del database). I tuoi client API istanziano il tuo oggetto QueryAPI una volta passato il clientid e il segreto.

client = QueryAPI(clientid, clientsecret)

user = User(name, address)
client.create_user(user)

Se gli oggetti del modello dati possono a loro volta propri oggetti figlio, potrebbe essere meglio mantenere un riferimento a QueryAPI in ogni modello di dati per fornire un'interfaccia più fluida.

client = QueryAPI(clientid, clientsecret)

user = client.create_user(firstname, lastname) # return a new user object with a reference to the QueryAPI
user.commit()

childentity = user.create_child_entity(attribute1, attribute2) # return a new child entity with reference to user and the QueryAPI 
childentity.commit()
    
risposta data 07.07.2016 - 19:20
fonte

Leggi altre domande sui tag