HiveNetWebUtils.server module

Web服务基础框架类

class HiveNetWebUtils.server.EnumServerRunStatus(value)[源代码]

基类:enum.Enum

服务器运行状态

ForceStop = 'ForceStop'
Running = 'Running'
Stop = 'Stop'
WaitStart = 'WaitStart'
WaitStop = 'WaitStop'
class HiveNetWebUtils.server.ServerBaseFW(app_name: str, server_config: dict = {}, support_auths: dict = {}, before_server_start=None, after_server_start=None, before_server_stop=None, after_server_stop=None, logger=None, log_level: int = 20, load_i18n_para=None, **kwargs)[源代码]

基类:object

服务基础类, 定义了服务的标准调用函数

__init__(app_name: str, server_config: dict = {}, support_auths: dict = {}, before_server_start=None, after_server_start=None, before_server_stop=None, after_server_stop=None, logger=None, log_level: int = 20, load_i18n_para=None, **kwargs)[源代码]

构造函数

参数
  • app_name (str) – 服务器名称

  • server_config (dict) – default={}, 服务配置字典, 由实现类自定义传值, 例如绑定主机, 端口等

  • support_auths (dict) –

    default={}, 服务器支持的验证对象字典, key为验证对象类型名(可以为类名), value为验证对象实例对象

    注意: 支持的auth对象必须有auth_required_call这个函数

  • before_server_start (function) – default=None, 服务器启动前执行的函数对象, 传入服务自身(self)

  • after_server_start (function) – default=None, 服务器启动后执行的函数对象, 传入服务自身(self)

  • before_server_stop (function) – default=None, 服务器关闭前执行的函数对象, 传入服务自身(self)

  • after_server_stop (function) – default=None, 服务器关闭后执行的函数对象, 传入服务自身(self)

  • logger (Logger) – default=None, 自定义应用逻辑使用的日志对象

  • log_level (int) – default=logging.INFO, 一般信息的记录使用的日志级别

  • load_i18n_para (dict) –

    default=None, 要装载的i18n语言文件配置

    path {str} - 要加载的i18n字典文件路径, 如果填空代表程序运行的当前路径

    prefix {str} - 要加载的i18n字典文件前缀

    encoding {str} - 要加载的i18n字典文件的字符编码, 默认为’utf-8’

  • 实现类自定义扩展参数 (-) –

async add_service(service_uri: str, handler: Callable, **kwargs) HiveNetCore.generic.CResult[源代码]

添加请求处理服务

(可以为同步或异步函数)

参数
  • service_uri (str) – 服务唯一标识, 例如服务名或url路由

  • handler (Callable) –

    请求处理函数, 应可同时支持同步或异步函数

    注: 由实现类自定义请求函数的要求

  • 实现类的自定义扩展参数 (-) –

返回

添加服务结果, result.code: ‘00000’-成功, ‘21405’-服务名已存在, 其他-异常

返回类型

CResult

property app_name: str

获取应用名 @property {str}

classmethod auth_required_static(f=None, auth_name: str = '', app_name: Optional[str] = None)[源代码]

静态的服务鉴权修饰函数

(用于支持鉴权对象实例化前对函数进行修饰处理)

参数
  • f (function) – 要调用的函数

  • auth_name (str) – default=’’, 验证对象类型名(比如类名, 具体取决于Server的初始化参数)

  • app_name (str) – default=None, 要获取的Server的app_name, 如果不传默认取第一个

示例

指定API需要IP黑白名单验证

class RestfulApiClass(object):

@classmethod

@ServerBaseFW.auth_required_static(auth_name=’IPAuth’, app_name=’demo_servr’)

def login(user_name, methods=[‘POST’], **kwargs):

classmethod get_auth_fun(auth_name: str = '', app_name: Optional[str] = None)[源代码]

获取Server支持的Auth实例对象

注: 该函数主要用于 auth_required_static 修饰符入参

参数
  • auth_name (str) – default=’’, 验证对象类型名(比如类名, 具体取决于Server的初始化参数)

  • app_name (str) – default=None, 要获取的Server的app_name, 如果不传默认取第一个

classmethod get_init_server(app_name: Optional[str] = None)[源代码]

获取已经初始化的服务对象

参数

app_name (str) – default=None, 要获取的服务的app_name, 如果不传默认取第一个

返回

获取到的对象

返回类型

ServerBaseFW

classmethod get_init_server_dict() collections.OrderedDict[源代码]

获取已经初始化的服务访问字典

返回

返回字典

返回类型

OrderedDict

async remove_service(service_uri: str, **kwargs) HiveNetCore.generic.CResult[源代码]

移除请求处理服务

(可以为同步或异步函数)

参数
  • service_uri (str) – 服务唯一标识, 例如服务名或url路由

  • 实现类的自定义扩展参数 (-) –

返回

删除服务结果, result.code: ‘00000’-成功, ‘21403’-服务不存在, 其他-异常

返回类型

CResult

async start(is_asyn: bool = False, sleep_time: float = 0.5, **kwargs) HiveNetCore.generic.CResult[源代码]

启动服务

(可以为同步或异步函数)

参数
  • is_asyn (bool) – default=False, 是否异步处理, 如果是则直接返回, 同步则阻塞处理直到服务停止

  • sleep_time (float) – default=0.5, 同步处理的每次循环检测状态的睡眠时间, 单位为秒

  • 实现类自定义的扩展参数 (-) –

返回

异步情况返回启动结果, result.code: ‘00000’-成功, ‘21401’-服务不属于停止状态, 其他-异常

返回类型

CResult

property status: HiveNetWebUtils.server.EnumServerRunStatus

获得服务器运行状态

@property {EnumServerRunStatus} - 返回运行状态

async stop(overtime: float = 0, sleep_time: int = 0.5, **kwargs) HiveNetCore.generic.CResult[源代码]

停止服务运行

(可以为同步或异步函数)

参数
  • overtime (float) – default=0, 等待超时时间, 单位为秒, 0代表一直不超时

  • sleep_time (float) – default=0.5, 每次等待睡眠时间, 单位为秒

  • 实现类自定义的扩展参数 (-) –

返回

停止结果, result.code: ‘00000’-成功, ‘21402’-服务停止失败-服务已关闭,

’31005’-执行超时, 29999’-其他系统失败

返回类型

CResult

class HiveNetWebUtils.server.TcpIpServer(app_name: str, server_config: Optional[dict] = None, support_auths: dict = {}, before_server_start=None, after_server_start=None, before_server_stop=None, after_server_stop=None, logger=None, log_level: int = 20, load_i18n_para=None, **kwargs)[源代码]

基类:HiveNetWebUtils.server.ServerBaseFW

TcpIp协议的服务实现

通讯协议为: 前4个字节为后续报文信息的字节长度(int), 后面报文信息为json字符串的字节数组, 字节编码为utf-8 注: 1、通过add_service可以添加service_uri为’’的处理函数, 如果请求匹配不到service_uri时将使用该函数进行处理; 2、add_service的处理函数的定义如下:

func(net_info, service_uri: str, request: dict) -> dict

service_uri - 匹配上的服务标识 request - 获取到的请求信息json字典 返回值为要返回到socket的字典, 如果无需返回则使用None返回

__init__(app_name: str, server_config: Optional[dict] = None, support_auths: dict = {}, before_server_start=None, after_server_start=None, before_server_stop=None, after_server_stop=None, logger=None, log_level: int = 20, load_i18n_para=None, **kwargs)[源代码]

构造函数

参数
  • app_name (str) – 服务器名称

  • server_config (dict) –

    default={}, 服务配置字典

    ip {str} - 主机名或IP地址, 默认为’’

    port {int} - 监听端口, 默认为8080

    max_connect {int} - 允许最大连接数, 默认为20

    recv_timeout {float} - 数据接收的超时时间, 单位为秒, 默认为10

    send_timeout {float} - 数据发送的超时时间, 单位为秒, 默认为10

  • support_auths (dict) –

    default={}, 服务器支持的验证对象字典, key为验证对象类型名(可以为类名), value为验证对象实例对象

    注意: 支持的auth对象必须有auth_required这个修饰符函数

  • before_server_start (function) – default=None, 服务器启动前执行的函数对象, 传入服务自身(self)

  • after_server_start (function) – default=None, 服务器启动后执行的函数对象, 传入服务自身(self)

  • before_server_stop (function) – default=None, 服务器关闭前执行的函数对象, 传入服务自身(self)

  • after_server_stop (function) – default=None, 服务器关闭后执行的函数对象, 传入服务自身(self)

  • logger (Logger) – default=None, 自定义应用逻辑使用的日志对象

  • log_level (int) – default=logging.INFO, 一般信息的记录使用的日志级别

  • load_i18n_para (dict) –

    default=None, 要装载的i18n语言文件配置

    path {str} - 要加载的i18n字典文件路径, 如果填空代表程序运行的当前路径

    prefix {str} - 要加载的i18n字典文件前缀

    encoding {str} - 要加载的i18n字典文件的字符编码, 默认为’utf-8’

  • 自定义扩展参数 (-) –