Поделиться через


API Java-клиента для Azure Service Fabric

Клиентские API Service Fabric позволяют развертывать приложения и контейнеры на основе микрослужб в кластере Service Fabric в Azure, локально, на локальном компьютере разработки или в другом облаке. В этой статье описывается, как создавать и использовать API клиента Java Service Fabric на основе REST API клиента Service Fabric

Создание клиентского кода с помощью autoRest

AutoRest — это средство, которое создает клиентские библиотеки для доступа к веб-службам RESTful. Входные данные в AutoRest — это спецификация, описывающая REST API с помощью формата спецификации OpenAPI. ИНТЕРФЕЙСы REST API клиента Service Fabric соответствуют этой спецификации.

Выполните описанные ниже действия, чтобы создать клиентский код Service Fabric Java с помощью средства автореста.

  1. Установите Node.js и NPM на компьютере.

    Если вы используете Linux, выполните следующие действия.

    sudo apt-get install npm
    sudo apt install nodejs
    

    Если вы используете Mac OS X, выполните следующие действия.

    brew install node
    
  2. Установите AutoRest с помощью npm.

    npm install -g autorest
    
  3. Сделайте форк и клонируйте репозиторий azure-rest-api-specs на локальном компьютере, затем перейдите в папку с клонированным репозиторием через терминал вашего компьютера.

  4. Перейдите в расположение, указанное ниже в клонированного репозитория.

    cd specification\servicefabric\data-plane\Microsoft.ServiceFabric\stable\6.0
    

    Примечание.

    Если версия кластера не равно 6.0.* , перейдите в соответствующий каталог в стабильной папке.

  5. Выполните следующую команду авторестирования, чтобы создать клиентский код Java.

    autorest --input-file= servicefabric.json --java --output-folder=[output-folder-name] --namespace=[namespace-of-generated-client]
    

    Ниже приведен пример использования autorest.

    autorest --input-file=servicefabric.json --java --output-folder=java-rest-api-code --namespace=servicefabricrest
    

    Следующая команда принимает в качестве входных данных файл спецификации servicefabric.json и создает Java клиентский код в папке java-rest-api-code, заключая его в пространство имен servicefabricrest. На этом шаге вы найдете две папки modelsimplementation и два файлаServiceFabricClientAPIs.java, package-info.java созданные в папкеjava-rest-api-code.

Включение и использование созданного клиента в проекте

  1. Добавьте созданный код соответствующим образом в проект. Рекомендуется создать библиотеку с помощью созданного кода и включить эту библиотеку в проект.

  2. Если вы создаете библиотеку, включите в проект библиотеки следующую зависимость. Если вы используете другой подход, включите зависимость соответствующим образом.

    GroupId:  com.microsoft.rest
    Artifactid: client-runtime
    Version: 1.2.1
    

    Например, если вы используете систему сборки Maven, включите в файл следующее pom.xml :

        <dependency>
          <groupId>com.microsoft.rest</groupId>
          <artifactId>client-runtime</artifactId>
          <version>1.2.1</version>
        </dependency>
    
  3. Создайте RestClient с помощью следующего кода:

        RestClient simpleClient = new RestClient.Builder()
            .withBaseUrl("http://<cluster-ip or name:port>")
            .withResponseBuilderFactory(new ServiceResponseBuilder.Factory())
            .withSerializerAdapter(new JacksonAdapter())
            .build();
        ServiceFabricClientAPIs client = new ServiceFabricClientAPIsImpl(simpleClient);
    
  4. Используйте клиентский объект и выполните необходимые вызовы. Ниже приведены некоторые примеры, демонстрирующие использование клиентского объекта. Предположим, что пакет приложения создается и передается в хранилище образов перед использованием приведенного ниже API.

    • Развертывание приложения

          ApplicationTypeImageStorePath imageStorePath = new ApplicationTypeImageStorePath();
          imageStorePath.withApplicationTypeBuildPath("<application-path-in-image-store>");
          client.provisionApplicationType(imageStorePath);
      
    • Создание приложения

          ApplicationDescription applicationDescription = new ApplicationDescription();
          applicationDescription.withName("<application-uri>");
          applicationDescription.withTypeName("<application-type>");
          applicationDescription.withTypeVersion("<application-version>");
          client.createApplication(applicationDescription);
      

Общие сведения о созданном коде

Для каждого API вы найдете четыре перегрузки реализации. Если есть необязательные параметры, то вы найдете еще четыре варианта, включая эти необязательные параметры. Например, рассмотрим API removeReplica.

  1. public void удалитьРеплику(String nodeName, UUID partitionId, String replicaId, Boolean forceRemove, Long timeout)
    • Это синхронный вариант вызова API removeReplica
  2. public ServiceFuture<Void> removeReplicaAsync(String nodeName, UUID partitionId, String replicaId, Boolean forceRemove, Long timeout, final ServiceCallback<Void> serviceCallback)
    • Этот вариант вызова API можно использовать, если вы хотите использовать асинхронное программирование на основе будущего и использовать обратные вызовы.
  3. public Observable<Void> removeReplicaAsync(String nodeName, UUID partitionId, String replicaId)
    • Этот вариант вызова API можно использовать, если вы хотите использовать реактивное асинхронное программирование
  4. public Observable<ServiceResponse Void>> removeReplicaWithServiceResponseAsync<(String nodeName, UUID partitionId, String replicaId)
    • Этот вариант вызова API можно использовать, если вы хотите применять реактивное асинхронное программирование и работать с необработанным ответом REST.

Дальнейшие действия