API client Java di Azure Service Fabric
Le API client di Service Fabric consentono di distribuire e gestire applicazioni e contenitori basati su microservizi in un cluster di Service Fabric in Azure, in locale, in un computer di sviluppo locale o in un altro cloud. Questo articolo descrive come generare e usare le API client Java di Service Fabric oltre alle API REST client di Service Fabric
Generare il codice client usando AutoRest
AutoRest è uno strumento che genera librerie client per l'accesso ai servizi Web RESTful. L'input per AutoRest è una specifica che descrive l'API REST usando il formato della specifica OpenAPI. Le API REST client di Service Fabric seguono questa specifica.
Seguire la procedura indicata sotto per generare il codice client Java di Service Fabric usando lo strumento AutoRest.
Installare nodejs e NPM nella macchina virtuale
Se si usa Linux:
sudo apt-get install npm sudo apt install nodejs
Se si usa Mac OS X:
brew install node
Installare AutoRest usando NPM.
npm install -g autorest
Fork e clonare il repository azure-rest-api-specs nel computer locale e passare alla posizione clonata dal terminale del computer.
Passare alla posizione indicata di seguito nel repository clonato.
cd specification\servicefabric\data-plane\Microsoft.ServiceFabric\stable\6.0
Nota
Se la versione del cluster non è 6.0.*, passare alla directory appropriata nella cartella stable.
Eseguire il comando autorest seguente per generare il codice client Java.
autorest --input-file= servicefabric.json --java --output-folder=[output-folder-name] --namespace=[namespace-of-generated-client]
Segue un esempio che illustra l'utilizzo di autorest.
autorest --input-file=servicefabric.json --java --output-folder=java-rest-api-code --namespace=servicefabricrest
Il comando seguente accetta
servicefabric.json
il file di specifica come input e genera codice client Java nellajava-rest-api-code
cartella e racchiude il codice nelloservicefabricrest
spazio dei nomi. Dopo questo passaggio saranno disponibili le due cartellemodels
eimplementation
e i due fileServiceFabricClientAPIs.java
epackage-info.java
generati nella cartellajava-rest-api-code
.
Includere e usare il client generato nel progetto
Aggiungere il codice generato in modo appropriato nel progetto. È consigliabile creare una libreria usando il codice generato e includerla del progetto.
Se si crea una libreria, includere la dipendenza seguente nel progetto della libreria. Se si segue un approccio diverso, includere la dipendenza in modo appropriato.
GroupId: com.microsoft.rest Artifactid: client-runtime Version: 1.2.1
Se ad esempio si usa il sistema di compilazione Maven, includere il codice seguente nel file
pom.xml
:<dependency> <groupId>com.microsoft.rest</groupId> <artifactId>client-runtime</artifactId> <version>1.2.1</version> </dependency>
Creare un elemento RestClient usando il codice seguente:
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);
Usare l'oggetto client ed eseguire le chiamate appropriate in base alla necessità. Di seguito sono riportati alcuni esempi che illustrano l'utilizzo dell'oggetto client. Si presuppone che il pacchetto dell'applicazione venga compilato e caricato nell'archivio immagini prima di usare le API seguenti.
Effettuare il provisioning di un'applicazione
ApplicationTypeImageStorePath imageStorePath = new ApplicationTypeImageStorePath(); imageStorePath.withApplicationTypeBuildPath("<application-path-in-image-store>"); client.provisionApplicationType(imageStorePath);
Creare un'applicazione
ApplicationDescription applicationDescription = new ApplicationDescription(); applicationDescription.withName("<application-uri>"); applicationDescription.withTypeName("<application-type>"); applicationDescription.withTypeVersion("<application-version>"); client.createApplication(applicationDescription);
Informazioni sul codice generato
Per ogni API sono disponibili quattro overload di implementazione. Se sono presenti parametri facoltativi, si otterranno altre quattro varianti, inclusi i parametri facoltativi. Si consideri ad esempio l'API removeReplica
.
- public void removeReplica(String nodeName, UUID partitionId, String replicaId, Boolean forceRemove, Long timeout)
- Questa è la variante sincrona della chiamata API removeReplica
- public ServiceFuture<Void> removeReplicaAsync(String nodeName, UUID partitionId, String replicaId, Boolean forceRemove, Long timeout, final ServiceCallback Void> serviceCallback<)
- Questa variante della chiamata API è utile se si vogliono usare la programmazione asincrona di base futura e i callback
- public Observable<Void> removeReplicaAsync(String nodeName, UUID partitionId, String replicaId)
- Questa variante della chiamata API è utile se si vuole usare la programmazione asincrona reattiva
- public Observable<ServiceResponse<Void>> removeReplicaWithServiceResponseAsync(String nodeName, UUID partitionId, String replicaId)
- Questa variante della chiamata API è utile se si vuole usare la programmazione asincrona reattiva e gestire la risposta REST non elaborata
Passaggi successivi
- Informazioni sulle API REST di Service Fabric