Использование DAML Ledger API из языков, отличных от Java или JavaScript

Для тех, кто использует Ruby on Rails или любой другой скрипт на стороне сервера, вам нужно будет использовать опцию anchor для путей. Это связано с тем, что, как только страница загружается, у нее нет хеша URL-адреса.

<%= form_for @foo, url: foo_path(@foo, anchor: dom_id(foo)) do |f| %>
# Or
<%= link_to 'Foo', foo_path(@foo, anchor: dom_id(foo)) %>

Если вы используете префикс, чтобы предотвратить переход из окна в id:

<%= form_for @foo, url: foo_path(@foo, anchor: "bar_#{dom_id(foo)}") do |f| %>

, вы должны указать правильную вкладку. ] Тогда вы CoffeeScript:

  hash = document.location.hash
  prefix = 'bar_'
  $('.nav-tabs a[href=' + hash.replace(prefix, '') + ']').tab 'show' if hash
  $('.nav-tabs a').on 'shown.bs.tab', (e) ->
    window.location.hash = e.target.hash.replace '#', '#' + prefix

Или JavaScript:

var hash, prefix;

hash = document.location.hash;
prefix = 'bar_';

if (hash) {
  $('.nav-tabs a[href=' + hash.replace(prefix, '') + ']').tab('show');
}

$('.nav-tabs a').on('shown.bs.tab', function(e) {
  window.location.hash = e.target.hash.replace('#', '#' + prefix);
});

Это должно работать в Bootstrap 3.

2
задан stefanobaghino 26 February 2019 в 10:21
поделиться

1 ответ

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

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

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

  • C ++
  • Java
  • Python
  • Go [1114 ]
  • Ruby
  • C #
  • Node.js
  • Android Java
  • Objective-C
  • PHP
  • [1121 ] 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 .

0
ответ дан stefanobaghino 26 February 2019 в 10:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: