API client per Java di Azure Service Fabric

Le API client di Service Fabric consentono la distribuzione e la gestione di 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 i passaggi indicati di seguito per generare il codice client Java di Service Fabric usando lo strumento AutoRest.

  1. Installare nodejs e NPM nel computer

    Se si usa Linux, procedere come illustrato di seguito:

    sudo apt-get install npm
    sudo apt install nodejs
    

    Se si usa macOS X, procedere come illustrato di seguito:

    brew install node
    
  2. Installare AutoRest usando NPM.

    npm install -g autorest
    
  3. Creare una copia tramite fork del repository azure-rest-api-specs e clonarlo nel computer locale, quindi passare alla posizione clonata dal terminale del computer.

  4. Passare alla posizione indicata di seguito nel repository clonato.

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

    Annotazioni

    Se la versione del cluster non è 6.0.* passare alla directory appropriata nella cartella stabile.

  5. 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]
    

    Di seguito è riportato 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 come input il file di specifica servicefabric.json e genera codice client Java nella cartella java-rest-api-code e racchiude il codice nello spazio dei nomi servicefabricrest. Dopo questo passaggio si troveranno due cartelle modelse implementation due file ServiceFabricClientAPIs.java e package-info.java generati nella java-rest-api-code cartella .

Includere e usare il client generato nel progetto

  1. Aggiungere il codice generato in modo appropriato al progetto. È consigliabile creare una libreria usando il codice generato e includere questa libreria nel progetto.

  2. Se si sta creando una libreria, includere la dipendenza seguente nel progetto della libreria. Se si utilizza un approccio diverso, includere la dipendenza in modo appropriato.

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

    Ad esempio, se si usa il sistema di compilazione Maven, includere quanto segue nel pom.xml file:

        <dependency>
          <groupId>com.microsoft.rest</groupId>
          <artifactId>client-runtime</artifactId>
          <version>1.2.1</version>
        </dependency>
    
  3. Creare un 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);
    
  4. Usare l'oggetto client e effettuare le chiamate appropriate in base alle esigenze. Ecco 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.

    • Fornire 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 sovraccarichi di implementazione. Se sono presenti parametri facoltativi, è possibile trovare altre quattro varianti, inclusi i parametri facoltativi. Si consideri ad esempio l'API removeReplica.

  1. public void removeReplica(String nodeName, UUID partitionId, String replicaId, Boolean forceRemove, Long timeout)
    • Questa è la variante sincrona della chiamata API removeReplica
  2. public ServiceFuture<Void> removeReplicaAsync(String nodeName, UUID partitionId, String replicaId, Boolean forceRemove, Long timeout, final ServiceCallback<Void> serviceCallback)
    • Questa variante di chiamata API può essere usata se si vuole usare la programmazione asincrona basata su futuro e usare i callback
  3. public Observable<Void> removeReplicaAsync(String nodeName, UUID partitionId, String replicaId)
    • Questa variante di chiamata API può essere usata se si vuole usare la programmazione asincrona reattiva
  4. public Observable<ServiceResponse<Void>> removeReplicaWithServiceResponseAsync(String nodeName, UUID partitionId, String replicaId)
    • Questa variante di chiamata API può essere usata se si vuole usare la programmazione asincrona reattiva e gestire la risposta rest RAW

Passaggi successivi