HiveNetWebUtils.server module¶
Web服务基础框架类
- class HiveNetWebUtils.server.EnumServerRunStatus(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[源代码]¶
基类:
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) CResult[源代码]¶
添加请求处理服务
(可以为同步或异步函数)
- 参数
service_uri (str) – 服务唯一标识, 例如服务名或url路由
handler (Callable) –
请求处理函数, 应可同时支持同步或异步函数
注: 由实现类自定义请求函数的要求
实现类的自定义扩展参数 (-) –
- 返回
添加服务结果, result.code: ‘00000’-成功, ‘21405’-服务名已存在, 其他-异常
- 返回类型
- property app_name: str¶
获取应用名 @property {str}
- classmethod auth_required_static(f=None, auth_name: str = '', app_name: 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: 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: str = None)[源代码]¶
获取已经初始化的服务对象
- 参数
app_name (str) – default=None, 要获取的服务的app_name, 如果不传默认取第一个
- 返回
获取到的对象
- 返回类型
- async remove_service(service_uri: str, **kwargs) CResult[源代码]¶
移除请求处理服务
(可以为同步或异步函数)
- 参数
service_uri (str) – 服务唯一标识, 例如服务名或url路由
实现类的自定义扩展参数 (-) –
- 返回
删除服务结果, result.code: ‘00000’-成功, ‘21403’-服务不存在, 其他-异常
- 返回类型
- async start(is_asyn: bool = False, sleep_time: float = 0.5, **kwargs) CResult[源代码]¶
启动服务
(可以为同步或异步函数)
- 参数
is_asyn (bool) – default=False, 是否异步处理, 如果是则直接返回, 同步则阻塞处理直到服务停止
sleep_time (float) – default=0.5, 同步处理的每次循环检测状态的睡眠时间, 单位为秒
实现类自定义的扩展参数 (-) –
- 返回
异步情况返回启动结果, result.code: ‘00000’-成功, ‘21401’-服务不属于停止状态, 其他-异常
- 返回类型
- property status: EnumServerRunStatus¶
获得服务器运行状态
@property {EnumServerRunStatus} - 返回运行状态
- async stop(overtime: float = 0, sleep_time: int = 0.5, **kwargs) CResult[源代码]¶
停止服务运行
(可以为同步或异步函数)
- 参数
overtime (float) – default=0, 等待超时时间, 单位为秒, 0代表一直不超时
sleep_time (float) – default=0.5, 每次等待睡眠时间, 单位为秒
实现类自定义的扩展参数 (-) –
- 返回
停止结果, result.code: ‘00000’-成功, ‘21402’-服务停止失败-服务已关闭,
’31005’-执行超时, 29999’-其他系统失败
- 返回类型
- class HiveNetWebUtils.server.TcpIpServer(app_name: str, server_config: 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)[源代码]¶
基类:
ServerBaseFWTcpIp协议的服务实现
通讯协议为: 前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: 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’
自定义扩展参数 (-) –