WeIdentity RestService 设计文档

    • 另一方面,用户的发交易需求可能不限制于对WeIdentity SDK,也包括WeEvent、WeSign等其他组件,而客户可能不愿意安装多个SDK。为解决该问题,RestService提供了一整套通用的各SDK的访问逻辑、参数定义解决方案,使得用户的签名操作与具体业务、具体SDK、具体合约解耦。
    • 在某些场景下,机构或用户可能不支持使用Java环境调用SDK;对此,使用RestService的另一个好处便是降低了多语言版本的SDK的开发成本。用户只要有发送HTTP请求的能力即可以调用WeIdentity的相关功能。
    • RestService服务端所有API均为无状态的。

    RestService架构包括以下模块:

    • 用户应用:用户的业务app应用,发送HTTP请求
    • rest-server:Server服务器端

    2.2 交易模型

    • 用户传入接口参数(包括私钥),直接调用RESTful接口,weid-http-service调用sdk然后发送交易;改造后:

    • weid-http-service接受请求,依据索引载入所托管的私钥,调用weid-java-sdk的对应方法,发送交易给区块链节点

    ../_images/fig2.svg步骤说明:

    • 用户组装方法名、业务输入参数、API版本号、私钥索引,并发送POST /weid/api/invoke,要求调用函数。
    • Server访问SDK进行入参检测,若通过,索引其托管在Server端的私钥,使用私钥进行签名,随后调用SDK相关合约方法并返回结果。