我想编写一个与 DAML 账本交互的应用程序,但从 SDK 0.11.3 开始,唯一记录的绑定是针对 Java 和 JavaScript 的。
有没有办法使用其他语言的 Ledger API?
The 账本API https://docs.daml.com/app-dev/ledger-api-introduction/index.html是一组通过以下方式公开的服务gRPC https://grpc.io/,它使用协议缓冲区 https://developers.google.com/protocol-buffers/作为自己的接口定义语言。
作为 SDK 一部分记录的绑定构建在 gRPC 生成的代码之上,以提供更多功能和更惯用的 API。
您仍然可以直接使用 gRPC 生成与 Ledger API 交互所需的代码。从 gRPC 1.15.1 开始,支持的语言(和/或平台)包括:
- C++
- Java
- Python
- Go
- Ruby
- C#
- Node.js
- 安卓Java
- Objective-C
- PHP
- Dart
以下是所有语言创建示例项目的通用步骤。如果您已经有一个项目,并且想要添加绑定不可用的语言的绑定,请跳至步骤 4。
-
为您的项目创建一个新目录并cd
into it
mkdir daml-project && cd daml-project
-
为 DAML 模型创建一个目录并将模型放入其中。现在,一个空模型就可以了(您可以稍后放置您选择的模型)。
mkdir daml && echo -e "daml 1.2\nmodule Empty where" > daml/Empty.daml
-
创建项目描述符(da.yaml
文件)包含以下内容:
project:
sdk-version: 0.11.3
name: daml-project
source: daml/Empty.daml
version: 2
-
运行以下命令将 Ledger API gRPC 服务定义添加到您的项目中:
da add ledger-api-protos
此时目录protobuf
应该已添加到您的项目中。您可以使用这些文件以 gRPC 支持的语言之一生成与 Ledger API 的绑定。
有关如何生成目标语言代码的过程由gRPC 官方文档 https://grpc.io/docs/.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)