Les services RPC du protocole Google sont créés soit par un constructeur, soit par une fabrique n'utilisant aucun paramètre. Toutefois, certaines applications doivent transmettre un état ou une configuration à un service via plusieurs requêtes. Pour ce faire, définissez les paramètres du constructeur du service et utilisez la méthode de classe new_factory() pour créer une fabrique qui transmet des paramètres au constructeur. Exemple :
from protorpc import remote
class MyService(remote.Service):
def __init__(self, configuration, state):
self.configuration = configuration
self.state = state
configuration = MyServiceConfiguration()
global_state = MyServiceState()
my_service_factory = MyService.new_factory(configuration,
state=global_state)
Le contrat avec un gestionnaire de services implique la création d'un objet de service pour gérer chaque requête utilisateur et qu'aucun paramètre ne soit exigé par la construction. La fabrique répond à cette condition :
new_instance = my_service_factory()
assert new_instance.state is global_state
Service
est fourni par le module protorpc.remote
.
Propriétés des classes
Les instances de services ont une propriété :
- request_state
- État de requête associé à une instance de service.
Méthodes des classes
La classe Service fournit les méthodes de classes suivantes :
- all_remote_methods()
-
Récupère toutes les méthodes distantes pour une classe Service.
Remarque : Les méthodes intégrées n'apparaissent pas dans le dictionnaire des méthodes distantes.
Renvoie un dictionnaire qui fait correspondre les noms des méthodes aux méthodes distantes.
- new_factory(args, **kwargs)
-
Crée une fabrique pour un service. Utile pour transmettre les objets de configuration ou d'état au service. Accepte des paramètres et mots-clés arbitraires. Toutefois, le service sous-jacent ne doit pas accepter d'autres paramètres dans son constructeur.
Arguments- args
- Arguments à transmettre au constructeur du service.
- **kwargs
Renvoie une fonction de fabrique qui crée une instance et transmet les arguments et les mots-clés au constructeur.
Méthodes des instances
Les méthodes des instances de la classe Service sont les suivantes :
- initialize_request_state(request_state)
- Arguments :
- request_state
- Instance de RequestState.