Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Клиентские 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 с помощью средства автореста.
Установите Node.js и NPM на компьютере.
Если вы используете Linux, выполните следующие действия.
sudo apt-get install npm sudo apt install nodejs
Если вы используете Mac OS X, выполните следующие действия.
brew install node
Установите AutoRest с помощью npm.
npm install -g autorest
Сделайте форк и клонируйте репозиторий azure-rest-api-specs на локальном компьютере, затем перейдите в папку с клонированным репозиторием через терминал вашего компьютера.
Перейдите в расположение, указанное ниже в клонированного репозитория.
cd specification\servicefabric\data-plane\Microsoft.ServiceFabric\stable\6.0
Примечание.
Если версия кластера не равно 6.0.* , перейдите в соответствующий каталог в стабильной папке.
Выполните следующую команду авторестирования, чтобы создать клиентский код 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
. На этом шаге вы найдете две папкиmodels
implementation
и два файлаServiceFabricClientAPIs.java
,package-info.java
созданные в папкеjava-rest-api-code
.
Включение и использование созданного клиента в проекте
Добавьте созданный код соответствующим образом в проект. Рекомендуется создать библиотеку с помощью созданного кода и включить эту библиотеку в проект.
Если вы создаете библиотеку, включите в проект библиотеки следующую зависимость. Если вы используете другой подход, включите зависимость соответствующим образом.
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>
Создайте 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);
Используйте клиентский объект и выполните необходимые вызовы. Ниже приведены некоторые примеры, демонстрирующие использование клиентского объекта. Предположим, что пакет приложения создается и передается в хранилище образов перед использованием приведенного ниже 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
.
-
public void удалитьРеплику(String nodeName, UUID partitionId, String replicaId, Boolean forceRemove, Long timeout)
- Это синхронный вариант вызова API removeReplica
-
public ServiceFuture<Void> removeReplicaAsync(String nodeName, UUID partitionId, String replicaId, Boolean forceRemove, Long timeout, final ServiceCallback<Void> serviceCallback)
- Этот вариант вызова API можно использовать, если вы хотите использовать асинхронное программирование на основе будущего и использовать обратные вызовы.
-
public Observable<Void> removeReplicaAsync(String nodeName, UUID partitionId, String replicaId)
- Этот вариант вызова API можно использовать, если вы хотите использовать реактивное асинхронное программирование
-
public Observable<ServiceResponse Void>> removeReplicaWithServiceResponseAsync<(String nodeName, UUID partitionId, String replicaId)
- Этот вариант вызова API можно использовать, если вы хотите применять реактивное асинхронное программирование и работать с необработанным ответом REST.
Дальнейшие действия
- Сведения о REST API Service Fabric