Server#
Misc#
JSON-RPC server package.
- class pjrpc.server.AsyncDispatcher(*, request_class=<class 'pjrpc.common.v20.Request'>, response_class=<class 'pjrpc.common.v20.Response'>, batch_request=<class 'pjrpc.common.v20.BatchRequest'>, batch_response=<class 'pjrpc.common.v20.BatchResponse'>, json_loader=<function loads>, json_dumper=<function dumps>, json_encoder=<class 'pjrpc.server.dispatcher.JSONEncoder'>, json_decoder=None, middlewares=(), error_handlers={})[source]#
Bases:
BaseDispatcher
Asynchronous method dispatcher.
- Parameters:
batch_request (Type[BatchRequest]) –
batch_response (Type[BatchResponse]) –
json_encoder (Type[JSONEncoder]) –
middlewares (Iterable[AsyncMiddlewareType]) –
error_handlers (Dict[Union[None, int, Exception], List[AsyncErrorHandlerType]]) –
- class pjrpc.server.BaseDispatcher(*, request_class=<class 'pjrpc.common.v20.Request'>, response_class=<class 'pjrpc.common.v20.Response'>, batch_request=<class 'pjrpc.common.v20.BatchRequest'>, batch_response=<class 'pjrpc.common.v20.BatchResponse'>, json_loader=<function loads>, json_dumper=<function dumps>, json_encoder=<class 'pjrpc.server.dispatcher.JSONEncoder'>, json_decoder=None, middlewares=(), error_handlers={})[source]#
Bases:
object
Method dispatcher.
- Parameters:
batch_request (Type[BatchRequest]) – JSON-RPC batch request class
batch_response (Type[BatchResponse]) – JSON-RPC batch response class
json_encoder (Type[JSONEncoder]) – response json encoder
json_decoder (Optional[Type[JSONDecoder]]) – request json decoder
middlewares (Iterable[Callable[[...], Any]]) – request middlewares
error_handlers (Dict[Union[None, int, Exception], List[Callable[[...], Any]]]) – request error handlers
- add_methods(*methods)[source]#
Adds methods to the registry.
- Parameters:
methods (Union[MethodRegistry, Method, Callable[[...], Any]]) – method list. Each method may be an instance of
pjrpc.server.MethodRegistry
,pjrpc.server.Method
or plain function- Return type:
None
- class pjrpc.server.Dispatcher(*, request_class=<class 'pjrpc.common.v20.Request'>, response_class=<class 'pjrpc.common.v20.Response'>, batch_request=<class 'pjrpc.common.v20.BatchRequest'>, batch_response=<class 'pjrpc.common.v20.BatchResponse'>, json_loader=<function loads>, json_dumper=<function dumps>, json_encoder=<class 'pjrpc.server.dispatcher.JSONEncoder'>, json_decoder=None, middlewares=(), error_handlers={})[source]#
Bases:
BaseDispatcher
Synchronous method dispatcher.
- Parameters:
batch_request (Type[BatchRequest]) –
batch_response (Type[BatchResponse]) –
json_encoder (Type[JSONEncoder]) –
middlewares (Iterable[MiddlewareType]) –
error_handlers (Dict[Union[None, int, Exception], List[ErrorHandlerType]]) –
- class pjrpc.server.JSONEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)[source]#
Bases:
JSONEncoder
Server JSON encoder. All custom server encoders should be inherited from it.
- default(o)[source]#
Implement this method in a subclass such that it returns a serializable object for
o
, or calls the base implementation (to raise aTypeError
).For example, to support arbitrary iterators, you could implement default like this:
def default(self, o): try: iterable = iter(o) except TypeError: pass else: return list(iterable) # Let the base class default method raise the TypeError return JSONEncoder.default(self, o)
- class pjrpc.server.Method(method, name=None, context=None)[source]#
Bases:
object
JSON-RPC method wrapper. Stores method itself and some metainformation.
- class pjrpc.server.MethodRegistry(prefix=None)[source]#
Bases:
object
Method registry.
- add(maybe_method=None, name=None, context=None)[source]#
Decorator adding decorated method to the registry.
- add_methods(*methods)[source]#
Adds methods to the registry.
- Parameters:
methods (Union[Callable[[...], Any], Method]) – methods to be added. Each one can be an instance of
pjrpc.server.Method
or plain method- Return type:
None
- merge(other)[source]#
Merges two registries.
- Parameters:
other (MethodRegistry) – registry to be merged in the current one
- Return type:
None
Types#
- pjrpc.server.typedefs.AsyncErrorHandlerType#
Asynchronous server error handler
alias of
Callable
[[Request
,Optional
[Any
],JsonRpcError
],Awaitable
[JsonRpcError
]]
- pjrpc.server.typedefs.AsyncMiddlewareType#
Asynchronous middleware type
alias of
Callable
[[Request
,Optional
[Any
],Callable
[[Request
,Optional
[Any
]],Awaitable
[Union
[UnsetType
,Response
]]]],Awaitable
[Union
[UnsetType
,Response
]]]
- pjrpc.server.typedefs.AsyncHandlerType#
Async RPC handler method, passed to middlewares
alias of
Callable
[[Request
,Optional
[Any
]],Awaitable
[Union
[UnsetType
,Response
]]]
- pjrpc.server.typedefs.MiddlewareResponse#
middlewares and handlers return Response or UnsetType
- pjrpc.server.typedefs.MiddlewareType#
Synchronous middleware type
alias of
Callable
[[Request
,Optional
[Any
],Callable
[[Request
,Optional
[Any
]],Union
[UnsetType
,Response
]]],Union
[UnsetType
,Response
]]
- pjrpc.server.typedefs.ErrorHandlerType#
Synchronous server error handler
alias of
Callable
[[Request
,Optional
[Any
],JsonRpcError
],JsonRpcError
]
- pjrpc.server.typedefs.ResponseOrUnset#
Return value of RPC handlers and middlewares
Integrations#
aiohttp#
aiohttp JSON-RPC server integration.
- class pjrpc.server.integration.aiohttp.Application(path='', spec=None, app=None, **kwargs)[source]#
Bases:
object
aiohttp based JSON-RPC server.
- Parameters:
path (str) – JSON-RPC handler base path
app_args – arguments to be passed to
aiohttp.web.Application
kwargs (Any) – arguments to be passed to the dispatcher
pjrpc.server.AsyncDispatcher
spec (Optional[Specification]) –
app (Optional[Application]) –
- property app: Application#
aiohttp application.
- property dispatcher: AsyncDispatcher#
JSON-RPC method dispatcher.
- property endpoints: Mapping[str, AsyncDispatcher]#
JSON-RPC application registered endpoints.
- add_endpoint(prefix, subapp=None, **kwargs)[source]#
Adds additional endpoint.
- Parameters:
prefix (str) – endpoint prefix
subapp (Optional[Application]) – aiohttp subapp the endpoint will be served on
kwargs (Any) – arguments to be passed to the dispatcher
pjrpc.server.Dispatcher
- Returns:
dispatcher
- Return type:
flask#
Flask JSON-RPC extension.
- class pjrpc.server.integration.flask.JsonRPC(path, spec=None, **kwargs)[source]#
Bases:
object
Flask framework JSON-RPC extension class.
- Parameters:
path (str) – JSON-RPC handler base path
spec (Optional[Specification]) – JSON-RPC specification
kwargs (Any) – arguments to be passed to the dispatcher
pjrpc.server.Dispatcher
- property dispatcher: Dispatcher#
JSON-RPC method dispatcher.
- property endpoints: Dict[str, Dispatcher]#
JSON-RPC application registered endpoints.
- add_endpoint(prefix, blueprint=None, **kwargs)[source]#
Adds additional endpoint.
- Parameters:
prefix (str) – endpoint prefix
blueprint (Optional[Blueprint]) – flask blueprint the endpoint will be served on
kwargs (Any) – arguments to be passed to the dispatcher
pjrpc.server.Dispatcher
- Returns:
dispatcher
- Return type:
kombu#
kombu JSON-RPC server integration.
- class pjrpc.server.integration.kombu.Executor(broker_url, queue_name, conn_args=None, queue_args=None, publish_args=None, prefetch_count=0, **kwargs)[source]#
Bases:
ConsumerProducerMixin
kombu based JSON-RPC server.
- Parameters:
broker_url (str) – broker connection url
queue_name (str) – requests queue name
conn_args (Optional[Dict[str, Any]]) – additional connection arguments
publish_args (Optional[Dict[str, Any]]) – message publish additional arguments
prefetch_count (int) – worker prefetch count
kwargs (Any) – dispatcher additional arguments
- property dispatcher: Dispatcher#
JSON-RPC method dispatcher.
aio_pika#
werkzeug#
- class pjrpc.server.integration.werkzeug.JsonRPC(path='', **kwargs)[source]#
Bases:
object
werkzeug server JSON-RPC integration.
- Parameters:
path (str) – JSON-RPC handler base path
kwargs (Any) – arguments to be passed to the dispatcher
pjrpc.server.Dispatcher
- property dispatcher: Dispatcher#
JSON-RPC method dispatcher.
Validators#
JSON-RPC method parameters validators.
- class pjrpc.server.validators.BaseValidator[source]#
Bases:
object
Base method parameters validator. Uses
inspect.signature()
for validation.- validate(maybe_method=None, **kwargs)[source]#
Decorator marks a method the parameters of which to be validated when calling it using JSON-RPC protocol.
- validate_method(method, params, exclude=(), **kwargs)[source]#
Validates params against method signature.
- Parameters:
- Raises:
- Returns:
bound method parameters
- Return type:
- exception pjrpc.server.validators.ValidationError[source]#
Bases:
Exception
Method parameters validation error. Raised when parameters validation failed.
jsonschema#
- class pjrpc.server.validators.jsonschema.JsonSchemaValidator(**kwargs)[source]#
Bases:
BaseValidator
Parameters validator based on jsonschema library.
- Parameters:
kwargs (Any) – default jsonschema validator arguments
pydantic#
- class pjrpc.server.validators.pydantic.PydanticValidator(coerce=True, **config_args)[source]#
Bases:
BaseValidator
Parameters validator based on pydantic library. Uses python type annotations for parameters validation.
- Parameters:
Specification#
- class pjrpc.server.specs.JSONEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)[source]#
Bases:
JSONEncoder
Schema JSON encoder.
- default(o)[source]#
Implement this method in a subclass such that it returns a serializable object for
o
, or calls the base implementation (to raise aTypeError
).For example, to support arbitrary iterators, you could implement default like this:
def default(self, o): try: iterable = iter(o) except TypeError: pass else: return list(iterable) # Let the base class default method raise the TypeError return JSONEncoder.default(self, o)
- class pjrpc.server.specs.Specification(path='/spec.json', ui=None, ui_path=None)[source]#
Bases:
ABC
JSON-RPC specification.
- Parameters:
extractors#
- class pjrpc.server.specs.extractors.Schema(schema, required=True, summary=UNSET, description=UNSET, deprecated=UNSET, definitions=UNSET)[source]#
Bases:
object
Method parameter/result schema.
- class pjrpc.server.specs.extractors.Example(params, result, version='2.0', summary=UNSET, description=UNSET)[source]#
Bases:
object
Method usage example.
- class pjrpc.server.specs.extractors.ErrorExample(code, message, data=UNSET, summary=UNSET, description=UNSET)[source]#
Bases:
object
Method error example.
- class pjrpc.server.specs.extractors.Tag(name, description=UNSET, externalDocs=UNSET)[source]#
Bases:
object
A list of method tags.
- class pjrpc.server.specs.extractors.Error(code, message, data=UNSET, data_required=UNSET, title=UNSET, description=UNSET, deprecated=UNSET, definitions=UNSET)[source]#
Bases:
object
Defines an application level error.
- class pjrpc.server.specs.extractors.BaseSchemaExtractor[source]#
Bases:
object
Base method schema extractor.
- class pjrpc.server.specs.extractors.pydantic.PydanticSchemaExtractor(ref_template='#/components/schemas/{model}')[source]#
Bases:
BaseSchemaExtractor
Pydantic method specification extractor.
- Parameters:
ref_template (str) –
schemas#
OpenAPI Specification generator. See https://swagger.io/specification/.
- class pjrpc.server.specs.openapi.Contact(name=UNSET, url=UNSET, email=UNSET)[source]#
Bases:
object
Contact information for the exposed API.
- class pjrpc.server.specs.openapi.License(name, url=UNSET)[source]#
Bases:
object
License information for the exposed API.
- class pjrpc.server.specs.openapi.Info(title, version, description=UNSET, contact=UNSET, license=UNSET, termsOfService=UNSET)[source]#
Bases:
object
Metadata about the API.
- Parameters:
title (str) – the title of the application
version (str) – the version of the OpenAPI document
description (Union[UnsetType, str]) – a short description of the application
contact (Union[UnsetType, Contact]) – the contact information for the exposed API
license (Union[UnsetType, License]) – the license information for the exposed API
termsOfService (Union[UnsetType, str]) – a URL to the Terms of Service for the API
- class pjrpc.server.specs.openapi.ServerVariable(default, enum=UNSET, description=UNSET)[source]#
Bases:
object
An object representing a Server Variable for server URL template substitution.
- Parameters:
default (str) – the default value to use for substitution, which SHALL be sent if an alternate value is not supplied
enum (Union[UnsetType, List[str]]) – an enumeration of string values to be used if the substitution options are from a limited set
description (Union[UnsetType, str]) – an optional description for the server variable
- class pjrpc.server.specs.openapi.Server(url, description=UNSET, variables=UNSET)[source]#
Bases:
object
Connectivity information of a target server.
- class pjrpc.server.specs.openapi.ExternalDocumentation(url, description=UNSET)[source]#
Bases:
object
Allows referencing an external resource for extended documentation.
- class pjrpc.server.specs.openapi.Tag(name, description=UNSET, externalDocs=UNSET)[source]#
Bases:
object
A list of tags for API documentation control. Tags can be used for logical grouping of methods by resources or any other qualifier.
- class pjrpc.server.specs.openapi.SecuritySchemeType(value)[source]#
-
The type of the security scheme.
- class pjrpc.server.specs.openapi.OAuthFlow(authorizationUrl, tokenUrl, scopes, refreshUrl=UNSET)[source]#
Bases:
object
Configuration details for a supported OAuth Flow.
- Parameters:
- class pjrpc.server.specs.openapi.OAuthFlows(implicit=UNSET, password=UNSET, clientCredentials=UNSET, authorizationCode=UNSET)[source]#
Bases:
object
Configuration of the supported OAuth Flows.
- Parameters:
implicit (Union[UnsetType, OAuthFlow]) – configuration for the OAuth Implicit flow
password (Union[UnsetType, OAuthFlow]) – configuration for the OAuth Resource Owner Password flow
clientCredentials (Union[UnsetType, OAuthFlow]) – configuration for the OAuth Client Credentials flow
authorizationCode (Union[UnsetType, OAuthFlow]) – configuration for the OAuth Authorization Code flow
- class pjrpc.server.specs.openapi.SecurityScheme(type, scheme, name=UNSET, location=UNSET, bearerFormat=UNSET, flows=UNSET, openIdConnectUrl=UNSET, description=UNSET)[source]#
Bases:
object
Defines a security scheme that can be used by the operations.
- Parameters:
type (SecuritySchemeType) – the type of the security scheme
name (Union[UnsetType, str]) – the name of the header, query or cookie parameter to be used
location (Union[UnsetType, ApiKeyLocation]) – the location of the API key
scheme (str) – the name of the HTTP Authorization scheme to be used in the Authorization header
bearerFormat (Union[UnsetType, str]) – a hint to the client to identify how the bearer token is formatted
flows (Union[UnsetType, OAuthFlows]) – an object containing configuration information for the flow types supported
description (Union[UnsetType, str]) – a short description for security scheme
- class pjrpc.server.specs.openapi.Components(securitySchemes=UNSET, schemas=<factory>)[source]#
Bases:
object
Holds a set of reusable objects for different aspects of the OAS.
- class pjrpc.server.specs.openapi.MethodExample(params, result, version='2.0', summary=UNSET, description=UNSET)[source]#
Bases:
object
Method usage example.
- class pjrpc.server.specs.openapi.ExampleObject(value, summary=UNSET, description=UNSET, externalValue=UNSET)[source]#
Bases:
object
Method usage example.
- class pjrpc.server.specs.openapi.MediaType(schema, examples=UNSET)[source]#
Bases:
object
Each Media Type Object provides schema and examples for the media type identified by its key.
- class pjrpc.server.specs.openapi.Response(description, content=UNSET)[source]#
Bases:
object
A container for the expected responses of an operation.
- class pjrpc.server.specs.openapi.RequestBody(content, required=UNSET, description=UNSET)[source]#
Bases:
object
Describes a single request body.
- class pjrpc.server.specs.openapi.StyleType(value)[source]#
-
Describes how the parameter value will be serialized depending on the type of the parameter value.
- class pjrpc.server.specs.openapi.Parameter(name, location, description=UNSET, required=UNSET, deprecated=UNSET, allowEmptyValue=UNSET, style=UNSET, explode=UNSET, allowReserved=UNSET, schema=UNSET, examples=UNSET, content=UNSET)[source]#
Bases:
object
Describes a single operation parameter.
- Parameters:
name (str) – the name of the parameter
location (ParameterLocation) – the location of the parameter
description (Union[UnsetType, str]) – a brief description of the parameter
required (Union[UnsetType, bool]) – determines whether this parameter is mandatory
deprecated (Union[UnsetType, bool]) – a parameter is deprecated and SHOULD be transitioned out of usage
allowEmptyValue (Union[UnsetType, bool]) – the ability to pass empty-valued parameters
style (Union[UnsetType, StyleType]) – describes how the parameter value will be serialized depending on the type of the parameter value
explode (Union[UnsetType, bool]) – when this is true, parameter values of type array or object generate separate parameters for each value of the array or key-value pair of the map
allowReserved (Union[UnsetType, bool]) – determines whether the parameter value SHOULD allow reserved characters, as defined by RFC3986 :/?#[]@!$&’()*+,;= to be included without percent-encoding
schema (Union[UnsetType, Dict[str, Any]]) – the schema defining the type used for the parameter.
examples (Union[UnsetType, Dict[str, ExampleObject]]) – examples of the parameter’s potential value
content (Union[UnsetType, Dict[str, MediaType]]) – a map containing the representations for the parameter
- class pjrpc.server.specs.openapi.Operation(responses, requestBody=UNSET, tags=UNSET, summary=UNSET, description=UNSET, externalDocs=UNSET, deprecated=UNSET, servers=UNSET, security=UNSET, parameters=UNSET)[source]#
Bases:
object
Describes a single API operation on a path.
- Parameters:
tags (Union[UnsetType, List[str]]) – a list of tags for API documentation control
summary (Union[UnsetType, str]) – a short summary of what the operation does
description (Union[UnsetType, str]) – a verbose explanation of the operation behavior
externalDocs (Union[UnsetType, ExternalDocumentation]) – additional external documentation for this operation
requestBody (Union[UnsetType, RequestBody]) – the request body applicable for this operation
responses (Dict[str, Response]) – the list of possible responses as they are returned from executing this operation
deprecated (Union[UnsetType, bool]) – declares this operation to be deprecated
servers (Union[UnsetType, List[Server]]) – an alternative server array to service this operation
security (Union[UnsetType, List[Dict[str, List[str]]]]) – a declaration of which security mechanisms can be used for this operation
- class pjrpc.server.specs.openapi.Path(get=UNSET, put=UNSET, post=UNSET, delete=UNSET, options=UNSET, head=UNSET, patch=UNSET, trace=UNSET, summary=UNSET, description=UNSET, servers=UNSET)[source]#
Bases:
object
Describes the interface for the given method name.
- Parameters:
summary (Union[UnsetType, str]) – an optional, string summary, intended to apply to all operations in this path
description (Union[UnsetType, str]) – an optional, string description, intended to apply to all operations in this path
servers (Union[UnsetType, List[Server]]) – an alternative server array to service all operations in this path
- pjrpc.server.specs.openapi.annotate(params_schema=UNSET, result_schema=UNSET, errors_schema=UNSET, errors=UNSET, examples=UNSET, error_examples=UNSET, tags=UNSET, summary=UNSET, description=UNSET, external_docs=UNSET, deprecated=UNSET, security=UNSET, parameters=UNSET)[source]#
Adds Open Api specification annotation to the method.
- Parameters:
params_schema (Union[UnsetType, Dict[str, Schema]]) – method parameters JSON schema
result_schema (Union[UnsetType, Schema]) – method result JSON schema
errors_schema (Union[UnsetType, List[Error]]) – method errors schema
errors (Union[UnsetType, List[Type[JsonRpcError]]]) – method errors
examples (Union[UnsetType, List[MethodExample]]) – method usage examples
error_examples (Union[UnsetType, List[ErrorExample]]) – method error examples
tags (Union[UnsetType, List[str]]) – a list of tags for method documentation control
summary (Union[UnsetType, str]) – a short summary of what the method does
description (Union[UnsetType, str]) – a verbose explanation of the method behavior
external_docs (Union[UnsetType, ExternalDocumentation]) – an external resource for extended documentation
deprecated (Union[UnsetType, bool]) – declares this method to be deprecated
security (Union[UnsetType, List[Dict[str, List[str]]]]) – a declaration of which security mechanisms can be used for the method
parameters (Union[UnsetType, List[Parameter]]) – a list of parameters that are applicable for the method
- Return type:
Callable[[Func], Func]
- class pjrpc.server.specs.openapi.OpenAPI(info, path='/openapi.json', servers=UNSET, external_docs=UNSET, tags=UNSET, security=UNSET, security_schemes=UNSET, openapi='3.0.0', schema_extractor=None, schema_extractors=(), ui=None, ui_path='/ui/')[source]#
Bases:
Specification
OpenAPI Specification.
- Parameters:
info (Info) – provides metadata about the API
servers (Union[UnsetType, List[Server]]) – an array of Server Objects, which provide connectivity information to a target server
external_docs (Union[UnsetType, ExternalDocumentation]) – additional external documentation
openapi (str) – the semantic version number of the OpenAPI Specification version that the OpenAPI document uses
tags (Union[UnsetType, List[Tag]]) – a list of tags used by the specification with additional metadata
security (Union[UnsetType, List[Dict[str, List[str]]]]) – a declaration of which security mechanisms can be used across the API
schema_extractor (Optional[BaseSchemaExtractor]) – method specification extractor
schema_extractors (Iterable[BaseSchemaExtractor]) – method specification extractors. Extractors results will be merged in reverse order (former extractor rewrites the result of the later one)
path (str) – specification url path
security_schemes (Union[UnsetType, Dict[str, SecurityScheme]]) – an object to hold reusable Security Scheme Objects
ui_path (str) – wet ui path
- class pjrpc.server.specs.openapi.SwaggerUI(**configs)[source]#
Bases:
BaseUI
Swagger UI.
- Parameters:
config – documentation configurations (see https://github.com/swagger-api/swagger-ui/blob/master/docs/usage/configuration.md).
configs (Any) –
- class pjrpc.server.specs.openapi.RapiDoc(**configs)[source]#
Bases:
BaseUI
RapiDoc UI.
- Parameters:
config – documentation configurations (see https://mrin9.github.io/RapiDoc/api.html). Be aware that configuration parameters should be in snake case, for example: parameter heading-text should be passed as heading_text)
configs (Any) –
- class pjrpc.server.specs.openapi.ReDoc(**configs)[source]#
Bases:
BaseUI
ReDoc UI.
- Parameters:
config – documentation configurations (see https://github.com/Redocly/redoc#configuration). Be aware that configuration parameters should be in snake case, for example: parameter heading-text should be passed as heading_text)
configs (Any) –
OpenRPC specification generator. See https://spec.open-rpc.org/.
- class pjrpc.server.specs.openrpc.Contact(name=UNSET, url=UNSET, email=UNSET)[source]#
Bases:
object
Contact information for the exposed API.
- class pjrpc.server.specs.openrpc.License(name, url=UNSET)[source]#
Bases:
object
License information for the exposed API.
- class pjrpc.server.specs.openrpc.Info(title, version, description=UNSET, contact=UNSET, license=UNSET, termsOfService=UNSET)[source]#
Bases:
object
Metadata about the API.
- Parameters:
title (str) – the title of the application
version (str) – the version of the OpenRPC document
description (Union[UnsetType, str]) – a verbose description of the application
contact (Union[UnsetType, Contact]) – the contact information for the exposed API
license (Union[UnsetType, License]) – the license information for the exposed API
termsOfService (Union[UnsetType, str]) – a URL to the Terms of Service for the API
- class pjrpc.server.specs.openrpc.Server(name, url, summary=UNSET, description=UNSET)[source]#
Bases:
object
Connectivity information of a target server.
- class pjrpc.server.specs.openrpc.ExternalDocumentation(url, description=UNSET)[source]#
Bases:
object
Allows referencing an external resource for extended documentation.
- class pjrpc.server.specs.openrpc.Tag(name, summary=UNSET, description=UNSET, externalDocs=UNSET)[source]#
Bases:
object
A list of tags for API documentation control. Tags can be used for logical grouping of methods by resources or any other qualifier.
- class pjrpc.server.specs.openrpc.ExampleObject(value, name, summary=UNSET, description=UNSET)[source]#
Bases:
object
The ExampleObject object is an object the defines an example.
- class pjrpc.server.specs.openrpc.MethodExample(name, params, result, summary=UNSET, description=UNSET)[source]#
Bases:
object
The example Pairing object consists of a set of example params and result.
- Parameters:
params (List[ExampleObject]) – example parameters
result (ExampleObject) – example result
name (str) – name for the example pairing
summary (Union[UnsetType, str]) – short description for the example pairing
description (Union[UnsetType, str]) – a verbose explanation of the example pairing
- class pjrpc.server.specs.openrpc.ContentDescriptor(name, schema, summary=UNSET, description=UNSET, required=UNSET, deprecated=UNSET)[source]#
Bases:
object
Content Descriptors are objects that describe content. They are reusable ways of describing either parameters or result.
- Parameters:
name (str) – name of the content that is being described
schema (Dict[str, Any]) – schema that describes the content. The Schema Objects MUST follow the specifications outline in the JSON Schema Specification 7 (https://json-schema.org/draft-07/json-schema-release-notes.html)
summary (Union[UnsetType, str]) – a short summary of the content that is being described
description (Union[UnsetType, str]) – a verbose explanation of the content descriptor behavior
required (Union[UnsetType, bool]) – determines if the content is a required field
deprecated (Union[UnsetType, bool]) – specifies that the content is deprecated and SHOULD be transitioned out of usage
- class pjrpc.server.specs.openrpc.Error(code, message, data=UNSET)[source]#
Bases:
object
Defines an application level error.
- class pjrpc.server.specs.openrpc.ParamStructure(value)[source]#
-
The expected format of the parameters.
- class pjrpc.server.specs.openrpc.MethodInfo(name, params, result, errors=UNSET, paramStructure=UNSET, examples=UNSET, summary=UNSET, description=UNSET, tags=UNSET, deprecated=UNSET, externalDocs=UNSET, servers=UNSET)[source]#
Bases:
object
Describes the interface for the given method name.
- Parameters:
name (str) – the canonical name for the method
params (List[Union[ContentDescriptor, Dict[str, Any]]]) – a list of parameters that are applicable for this method
result (Union[ContentDescriptor, Dict[str, Any]]) – the description of the result returned by the method
errors (Union[UnsetType, List[Error]]) – a list of custom application defined errors that MAY be returned
examples (Union[UnsetType, List[MethodExample]]) – method usage examples
summary (Union[UnsetType, str]) – a short summary of what the method does
description (Union[UnsetType, str]) – a verbose explanation of the method behavior
tags (Union[UnsetType, List[Tag]]) – a list of tags for API documentation control
deprecated (Union[UnsetType, bool]) – declares this method to be deprecated
paramStructure (Union[UnsetType, ParamStructure]) – the expected format of the parameters
externalDocs (Union[UnsetType, ExternalDocumentation]) – additional external documentation for this method
servers (Union[UnsetType, List[Server]]) – an alternative servers array to service this method
- class pjrpc.server.specs.openrpc.Components(schemas=<factory>)[source]#
Bases:
object
Set of reusable objects for different aspects of the OpenRPC.
- pjrpc.server.specs.openrpc.annotate(params_schema=UNSET, result_schema=UNSET, errors=UNSET, examples=UNSET, summary=UNSET, description=UNSET, tags=UNSET, deprecated=UNSET)[source]#
Adds JSON-RPC method to the API specification.
- Parameters:
params_schema (Union[UnsetType, List[ContentDescriptor]]) – a list of parameters that are applicable for this method
result_schema (Union[UnsetType, ContentDescriptor]) – the description of the result returned by the method
errors (Union[UnsetType, List[Union[Error, Type[JsonRpcError]]]]) – a list of custom application defined errors that MAY be returned
examples (Union[UnsetType, List[MethodExample]]) – method usage example
summary (Union[UnsetType, str]) – a short summary of what the method does
description (Union[UnsetType, str]) – a verbose explanation of the method behavior
tags (Union[UnsetType, List[Union[Tag, str]]]) – a list of tags for API documentation control
deprecated (Union[UnsetType, bool]) – declares this method to be deprecated
- Return type:
Callable[[Func], Func]
- class pjrpc.server.specs.openrpc.OpenRPC(info, path='/openrpc.json', servers=UNSET, external_docs=UNSET, openrpc='1.0.0', schema_extractor=None)[source]#
Bases:
Specification
OpenRPC Specification.
- Parameters:
info (Info) – specification information
path (str) – specification url path
servers (Union[UnsetType, List[Server]]) – connectivity information
external_docs (Union[UnsetType, ExternalDocumentation]) – additional external documentation
openrpc (str) – the semantic version number of the OpenRPC Specification version that the OpenRPC document uses
schema_extractor (Optional[BaseSchemaExtractor]) – method specification extractor