APIs de Cliente Java do Azure Service Fabric
As APIs de cliente do Service Fabric permitem implementar e gerir aplicações e contentores baseados em microsserviços num cluster do Service Fabric no Azure, no local, no computador de desenvolvimento local ou noutra cloud. Este artigo descreve como gerar e utilizar APIs de cliente Java do Service Fabric sobre as APIs REST do cliente do Service Fabric
Gerar o código de cliente com o AutoRest
AutoRest é uma ferramenta que gera bibliotecas de cliente para aceder a serviços Web RESTful. A entrada no Teste Automático é uma especificação que descreve a API REST com o formato Especificação OpenAPI. As APIs REST do cliente do Service Fabric seguem esta especificação.
Siga os passos mencionados abaixo para gerar o código de cliente Java do Service Fabric com a ferramenta AutoRest.
Instalar nodejs e NPM no seu computador
Se estiver a utilizar o Linux, então:
sudo apt-get install npm sudo apt install nodejs
Se estiver a utilizar o Mac OS X, então:
brew install node
Instale o AutoRest com o NPM.
npm install -g autorest
Crie um fork e clone o repositório azure-rest-api-specs no seu computador local e aceda à localização clonada a partir do terminal do computador.
Aceda à localização mencionada abaixo no seu repositório clonado.
cd specification\servicefabric\data-plane\Microsoft.ServiceFabric\stable\6.0
Nota
Se a versão do cluster não for a 6.0.* , aceda ao diretório adequado na pasta estável.
Execute o seguinte comando autorest para gerar o código de cliente Java.
autorest --input-file= servicefabric.json --java --output-folder=[output-folder-name] --namespace=[namespace-of-generated-client]
Segue-se um exemplo que demonstra a utilização de autorest.
autorest --input-file=servicefabric.json --java --output-folder=java-rest-api-code --namespace=servicefabricrest
O comando seguinte utiliza
servicefabric.json
o ficheiro de especificação como entrada e gera código de cliente Java najava-rest-api-code
pasta e coloca o código noservicefabricrest
espaço de nomes. Após este passo, encontrará duas pastasmodels
eimplementation
dois ficheirosServiceFabricClientAPIs.java
epackage-info.java
gerados najava-rest-api-code
pasta .
Incluir e utilizar o cliente gerado no projeto
Adicione o código gerado adequadamente ao projeto. Recomendamos que crie uma biblioteca com o código gerado e inclua esta biblioteca no seu projeto.
Se estiver a criar uma biblioteca, inclua a seguinte dependência no projeto da biblioteca. Se estiver a seguir uma abordagem diferente, inclua a dependência adequadamente.
GroupId: com.microsoft.rest Artifactid: client-runtime Version: 1.2.1
Por exemplo, se estiver a utilizar o sistema de compilação maven, inclua o seguinte no seu
pom.xml
ficheiro:<dependency> <groupId>com.microsoft.rest</groupId> <artifactId>client-runtime</artifactId> <version>1.2.1</version> </dependency>
Crie um RestClient com o seguinte código:
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);
Utilize o objeto de cliente e faça as chamadas adequadas conforme necessário. Eis alguns exemplos que demonstram a utilização do objeto de cliente. Partimos do princípio de que o pacote de aplicação foi criado e carregado para o arquivo de imagens antes de utilizar as API abaixo.
Aprovisionar uma aplicação
ApplicationTypeImageStorePath imageStorePath = new ApplicationTypeImageStorePath(); imageStorePath.withApplicationTypeBuildPath("<application-path-in-image-store>"); client.provisionApplicationType(imageStorePath);
Criar uma aplicação
ApplicationDescription applicationDescription = new ApplicationDescription(); applicationDescription.withName("<application-uri>"); applicationDescription.withTypeName("<application-type>"); applicationDescription.withTypeVersion("<application-version>"); client.createApplication(applicationDescription);
Compreender o código gerado
Para cada API, encontrará quatro sobrecargas de implementação. Se existirem parâmetros opcionais, encontrará mais quatro variações, incluindo esses parâmetros opcionais. Por exemplo, considere a API removeReplica
.
- public void removeReplica(String nodeName, UUID partitionId, String replicaId, Boolean forceRemove, Long timeout)
- Esta é a variante síncrona da chamada à API removeReplica
- public ServiceFuture<Void> removeReplicaAsync(String nodeName, UUID partitionId, String replicaId, Boolean forceRemove, Long timeout, final ServiceCallback<Void> serviceCallback)
- Esta variante da chamada à API pode ser utilizada se quiser utilizar programação assíncrona baseada no futuro e utilizar chamadas de retorno
- public Observable<Void> removeReplicaAsync(String nodeName, UUID partitionId, String replicaId)
- Esta variante da chamada à API pode ser utilizada se quiser utilizar programação assíncrona reativa
- public Observable<ServiceResponse<Void>> removeReplicaWithServiceResponseAsync(String nodeName, UUID partitionId, String replicaId)
- Esta variante da chamada à API pode ser utilizada se quiser utilizar programação assíncrona reativa e lidar com a resposta rest RAW
Passos seguintes
- Saiba mais sobre as APIs REST do Service Fabric