daml - 从 Java 或 JavaScript 以外的语言使用 DAML Ledger API
问题描述
我想编写一个与 DAML 分类帐交互的应用程序,但从 SDK 0.11.3 开始,唯一记录的绑定是用于 Java 和 JavaScript。
有没有办法使用其他语言的 Ledger API?
解决方案
Ledger API是一组通过gRPC公开的服务,它使用Protocol Buffers作为自己的接口定义语言。
作为 SDK 的一部分记录的绑定建立在 gRPC 生成的代码之上,以提供更多功能和更惯用的 API。
您仍然可以直接使用 gRPC 生成与 Ledger API 交互所需的代码。从 gRPC 1.15.1 开始,支持的语言(和/或平台)包括:
- C++
- 爪哇
- Python
- 去
- 红宝石
- C#
- 节点.js
- 安卓Java
- Objective-C
- PHP
- 镖
以下是创建示例项目的所有语言通用的第一步。如果您已经有一个项目并且想要使用绑定不可用的语言添加绑定,请跳到第 4 步。
为您的项目创建一个新目录并
cd
进入其中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 官方文档中描述了如何为您的目标语言生成代码的过程。
推荐阅读
- mongodb - Spring Data MongoDB 基于鉴别器的多租户
- spring-mvc - jstl 核心标签 forEach 没有出现在 JSP 上
- javascript - 我可以获取 json 数据,但我无法在 HTML (javascript) 中显示它
- python - 跟踪保单年份
- tapestry - 间隔一段时间后如何在挂毯中刷新我的页面
- javascript - 如何将代码从同步和异步类概括为 Javascript/Typescript 中的抽象类
- java - 我无法使用 Java BufferedReader 读取文本文件
- jenkins - TFS Jenkins 的插件删除已经存在的工作区映射
- adobe - 重复在 Photoshop 中设置的动作
- c - C程序,不同源代码中两个同名变量,不带extern