通过Java或JavaScript以外的语言使用DAML分类帐API

时间:2019-02-26 08:54:11

标签: daml

我想编写一个与DAML分类帐进行交互的应用程序,但是从SDK 0.11.3开始,唯一记录的绑定是针对Java和JavaScript的。

是否可以使用其他语言的Ledger API?

1 个答案:

答案 0 :(得分:3)

Ledger API是通过gRPC公开的一组服务,这些服务使用Protocol Buffers作为其自己的接口定义语言。

SDK中记录的绑定建立在gRPC生成的代码之上,以提供更多功能和更惯用的API。

您仍然可以直接使用gRPC生成与Ledger API交互所需的代码。从gRPC 1.15.1开始,支持的语言(和/或平台)包括:

  • C ++
  • Java
  • Python
  • 开始
  • Ruby
  • C#
  • Node.js
  • Android Java
  • Objective-C
  • PHP
  • 飞镖

以下是创建示例项目的所有语言通用的第一步。如果您已经有一个项目,并且想使用无法使用绑定的语言添加绑定,请跳至步骤4。

  1. 为您的项目创建一个新目录,并cd进入其中

    mkdir daml-project && cd daml-project
    
  2. 为DAML模型创建目录,并将模型放入其中。现在,将使用空模型(您可以在以后放入您选择的模型)。

    mkdir daml && echo -e "daml 1.2\nmodule Empty where" > daml/Empty.daml
    
  3. 创建具有以下内容的项目描述符(da.yaml文件):

    project:
      sdk-version: 0.11.3
      name: daml-project
      source: daml/Empty.daml
    version: 2
    
  4. 运行以下命令以将Ledger API gRPC服务定义添加到您的项目中:

    da add ledger-api-protos
    

此时,目录protobuf应该已经添加到您的项目中。您可以使用这些文件以gRPC支持的一种语言生成与Ledger API的绑定。

gRPC official documentation描述了如何为目标语言生成代码的过程。