Использование 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.

  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. Выполните следующую команду, чтобы добавить определения сервисов gRPC API Ledger в ваш проект:

    da add ledger-api-protos
    

На данный момент каталог protobuf должен был быть добавлен в ваш проект. Вы можете использовать эти файлы для генерации привязок к Ledger API на одном из языков, поддерживаемых gRPC.

Процедура создания кода для вашего целевого языка описана в официальной документации gRPC.

Другие вопросы по тегам