Использование DAML Ledger API из языков, отличных от Java или JavaScript - PullRequest
0 голосов
/ 26 февраля 2019

Я хотел бы написать приложение, которое взаимодействует с бухгалтерской книгой DAML, но начиная с SDK 0.11.3 единственные документированные привязки относятся к Java и JavaScript.

Есть ли способ использовать API Ledger издругие языки?

1 Ответ

0 голосов
/ 26 февраля 2019

Ledger API - это набор служб, предоставляемых через gRPC , который использует Буферы протокола в качестве собственного языка определения интерфейса.

Привязки, задокументированные как часть SDK, строятся поверх кода, сгенерированного из gRPC, чтобы предложить больше функций и более идиоматического API.

Вы все еще можете использовать gRPC напрямую для генерации кода, необходимого для взаимодействия с API Ledger.,Начиная с gRPC 1.15.1, поддерживаемые языки (и / или платформы) включают:

  • C ++
  • Java
  • Python
  • Go
  • Ruby
  • C #
  • Node.js
  • Android Java
  • Objective-C
  • PHP
  • Dart

Ниже приведены первые общие для всех языков шаги по созданию примера проекта.Если у вас уже есть проект и вы хотите добавить привязки на языке, для которого привязки недоступны, перейдите к шагу 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 .

...