La clase Service
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Los servicios RPC del protocolo de Google se construyen a través de un constructor o una fábrica que no toma parámetros. Sin embargo, algunas aplicaciones necesitan pasar algún estado o configuración a un servicio a través de varias solicitudes. Para ello, define los parámetros del constructor del servicio y usa el método de clase new_factory() para crear una fábrica que transmita los parámetros al constructor. Por ejemplo:
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)
El contrato con cualquier controlador de servicios es que se cree un objeto de servicio nuevo para controlar cada solicitud del usuario y que la construcción no tome ningún parámetro. La fábrica cumple esta condición:
new_instance = my_service_factory()
assert new_instance.state is global_state
El módulo protorpc.remote
proporciona Service
.
Propiedades de clase
Instancias de servicio de una propiedad:
- request_state
- Estado de solicitud asociado a esta instancia de Service.
Métodos de clase
La clase Service proporciona los métodos de clase siguientes:
- all_remote_methods()
-
Obtiene todos los métodos remotos para una clase Service.
Nota: Los métodos incorporados no aparecen en el diccionario de métodos remotos.
Devuelve un diccionario que asigna nombres de métodos a métodos remotos.
- new_factory(args, **kwargs)
-
Crea una fábrica para un servicio. Es útil para pasar objetos de configuración o estado al servicio. Acepta palabras clave y parámetros arbitrarios; sin embargo, el servicio subyacente también debe aceptar otros parámetros en su constructor.
Argumentos
- args
- Argumentos para pasar al constructor del servicio.
- **kwargs
Devuelve una función de fábrica que crea una instancia nueva y reenvía argumentos y palabras clave al constructor.
Métodos de instancia
Las instancias de servicio tienen los métodos siguientes:
- initialize_request_state(request_state)
- Argumentos:
- request_state
- Una instancia de RequestState.
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-09-04 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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."]]