Использование DAML Ledger API из языков, отличных от Java или JavaScript
Я хотел бы написать приложение, которое взаимодействует с бухгалтерской книгой DAML, но в SDK 0.11.3 единственные документированные привязки относятся к Java и JavaScript.
Есть ли способ использовать Ledger API из других языков?
1 ответ
Ledger API - это набор сервисов, предоставляемых через gRPC, который использует буферы протокола в качестве собственного языка определения интерфейса.
Привязки, задокументированные как часть SDK, основаны на коде, сгенерированном из gRPC, чтобы предложить больше функций и более идиоматический API.
Вы все еще можете использовать gRPC напрямую для генерации кода, необходимого для взаимодействия с API Ledger. Начиная с gRPC 1.15.1, поддерживаемые языки (и / или платформы) включают в себя:
- C++
- Джава
- питон
- Идти
- Рубин
- C#
- Node.js
- Android 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
Выполните следующую команду, чтобы добавить определения сервисов gRPC API Ledger в ваш проект:
da add ledger-api-protos
На данный момент каталог protobuf
должен был быть добавлен в ваш проект. Вы можете использовать эти файлы для генерации привязок к Ledger API на одном из языков, поддерживаемых gRPC.
Процедура создания кода для вашего целевого языка описана в официальной документации gRPC.