@tars/dyeing

@tars/dyeing

TARS 染色基础模块,提供获取与判断 染色对象 的方法。

使用者:不应该直接使用此模块,而应使用其他符合 染色标准 的模块获取 染色对象

模块开发者:获取 TARS染色对象 应使用此模块的 gen() 方法获取 染色对象

染色(简介)

染色是在接口的调用链(服务端 <==> 客户端)上传递的一种状态,用于标识一次特定的请求处理过程。

这种状态由一个 标志位 与 附加信息 KEY (可选) 构成。

调用链上的服务可以设置(发起)与读取(接收)这种状态,并作对应的处理(如输出特定的日志、特性)。

在系统中,染色由此模块与其对应的约定构成。

标准(约定)

如模块使用染色体系,则需遵守如下约定(与此同时,我们将符合约定的模块称之为符合 染色标准 的模块):

  1. 提供 getDyeingObj() 方法,返回 染色对象
  2. 通过 @tars/dyeing.gen 方法,生成 染色对象
  3. 通过 @tars/dyeing.is() 方法,判断 染色对象 是否有效。

模块方法

TarsDyeing.gen(dyeing[, key, args])

通过调用此方法,可获得 染色对象

dyeing: 是否需要染色key: 染色附加信息 KEY(可选)args: 程序的附加参数(可选)

key 会通过调用链传递给下一个服务,而 args 仅只会在当前的染色对象中有效(并不会进行传递)。

请注意:染色对象 与 染色发起原因,这是不同的(东西)。此模块仅关心 染色对象,而不关心 染色发起原因。

TarsDyeing.is(obj)

调用此方法,可以判断 一个传入的对象是否是 染色对象

如传入空对象,方法同样会返回 false

染色对象 属性

dyeingObj.dyeing

是否需要染色,此为 Boolean

dyeingObj.key

染色传递的附加信息,此为 String 且为可选值,不一定存在

dyeingObj.args

染色对象本身的附加信息,业务代码不应将其在服务间进行传递(仅作为本地参数使用)。

此对象类型不限,同时也为可选值