A classe de serviço
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Os serviços RPC do protocolo do Google são criados por meio de um construtor ou uma fábrica que não usa parâmetros. Entretanto, alguns aplicativos precisam passar algum estado ou configuração para um serviço por várias solicitações. Para fazer isso, defina os parâmetros para o construtor do serviço e use o método de classe new_factory() para construir uma fábrica que transmitirá parâmetros para o construtor. Por exemplo:
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)
O contrato com qualquer manipulador de serviço é que um novo objeto de serviço seja criado para manipular cada solicitação do usuário e que a construção não assuma parâmetros. A fábrica satisfaz essa condição:
new_instance = my_service_factory()
assert new_instance.state is global_state
Service
é fornecido pelo módulo protorpc.remote
.
Propriedades da classe
Os serviços instanciam uma propriedade:
- request_state
- Estado de solicitação associado a esta instância de Service.
Métodos de classe
A classe Service fornece os seguintes métodos de classe:
- all_remote_methods()
-
Recebe todos os métodos remotos para uma classe Service.
Observação: os métodos incorporados não aparecem no dicionário dos métodos remotos.
Retorna um dicionário que mapeia nomes de método para métodos remotos.
- new_factory(args, **kwargs)
-
Cria uma fábrica para um serviço. Útil para passar objetos de configuração ou estado para o serviço. Aceita parâmetros arbitrários e palavras-chave, mas o serviço subjacente também não pode aceitar outros parâmetros no construtor.
Argumentos
- args
- Argumentos a serem passados para o construtor do serviço.
- **kwargs
Retorna uma função de fábrica que cria uma nova instância e encaminha argumentos e palavras-chave para o construtor.
Métodos da instância
As instâncias de Service têm os métodos abaixo:
- initialize_request_state(request_state)
- Argumentos:
- request_state
- Uma instância de RequestState.
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-09-04 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-09-04 UTC."],[[["\u003cp\u003eGoogle Protocol RPC services typically use parameterless constructors or factories, but the \u003ccode\u003enew_factory()\u003c/code\u003e method allows for passing state or configuration to the service constructor.\u003c/p\u003e\n"],["\u003cp\u003eA new service object is created for each user request, adhering to the contract that service construction does not take parameters, a condition fulfilled by the factory.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eService\u003c/code\u003e class from \u003ccode\u003eprotorpc.remote\u003c/code\u003e offers class methods like \u003ccode\u003eall_remote_methods()\u003c/code\u003e to get all remote methods, excluding built-in methods, and \u003ccode\u003enew_factory()\u003c/code\u003e to pass configuration or state objects during service creation.\u003c/p\u003e\n"],["\u003cp\u003eService instances have one property, \u003ccode\u003erequest_state\u003c/code\u003e, and one instance method, \u003ccode\u003einitialize_request_state(request_state)\u003c/code\u003e which initializes a RequestState instance.\u003c/p\u003e\n"]]],[],null,["# The Service Class\n\nGoogle Protocol RPC services are constructed either via a constructor or a factory which takes no parameters. However, some applications need to pass some state or configuration into a service across multiple requests. To do this, define parameters to the constructor of the service and use the [new_factory()](#new_factory) class method to build a factory that will transmit parameters to the constructor. For example: \n\n from protorpc import remote\n\n\n class MyService(remote.Service):\n\n def __init__(self, configuration, state):\n self.configuration = configuration\n self.state = state\n\n configuration = MyServiceConfiguration()\n global_state = MyServiceState()\n\n my_service_factory = MyService.new_factory(configuration,\n state=global_state)\n\nThe contract with any service handler is that a new service object is created to handle each user request, and that the construction does not take any parameters. The factory satisfies this condition: \n\n new_instance = my_service_factory()\n assert new_instance.state is global_state\n\n`Service` is provided by the `protorpc.remote` module.\n\nClass Properties\n----------------\n\nServices instances one property:\n\nrequest_state\n: Request state associated with this Service instance.\n\nClass Methods\n-------------\n\nThe Service class provides the following class methods:\n\nall_remote_methods()\n\n: Gets all remote methods for a Service class.\n\n **Note:** Built-in methods do not appear in the dictionary of remote methods.\n\n Returns a dictionary that maps method names to remote methods.\n\nnew_factory(args, \\*\\*kwargs)\n\n: Creates a factory for a service. Useful for passing configuration or state objects to the service. Accepts arbitrary parameters and keywords, however, underlying service must accept also accept not other parameters in its constructor.\n\n **Arguments**\n\n args\n : Arguments to pass to the service constructor.\n\n \\*\\*kwargs\n\n Returns a factory function that creates a new instance and forwards arguments and keywords to the constructor.\n\nInstance Methods\n----------------\n\nService instances have the following methods:\n\ninitialize_request_state(request_state)\n:\n: Arguments:\n\n request_state\n : A [RequestState](/appengine/docs/legacy/standard/python/tools/protorpc/remote/requeststateclass) instance."]]