Azure Service Fabric Java-klient-API:er

Med Service Fabric-klient-API:er kan du distribuera och hantera mikrotjänstbaserade program och containrar i ett Service Fabric-kluster i Azure, lokalt, på en lokal utvecklingsdator eller i ett annat moln. Den här artikeln beskriver hur du genererar och använder Service Fabric Java-klient-API:er ovanpå REST-API:er för Service Fabric-klienten

Generera klientkoden med AutoRest

AutoRest är ett verktyg som genererar klientbibliotek för åtkomst till RESTful-webbtjänster. Indata till AutoRest är en specifikation som beskriver REST-API:et med formatet OpenAPI Specification. Rest-API:er för Service Fabric-klienten följer den här specifikationen .

Följ stegen nedan för att generera Service Fabric Java-klientkod med verktyget AutoRest.

  1. Installera nodejs och NPM på datorn

    Om du använder Linux:

    sudo apt-get install npm
    sudo apt install nodejs
    

    Om du använder Mac OS X:

    brew install node
    
  2. Installera AutoRest med NPM.

    npm install -g autorest
    
  3. Förgrena och klona lagringsplatsen azure-rest-api-specs på den lokala datorn och gå till den klonade platsen från datorns terminal.

  4. Gå till den plats som nämns nedan i din klonade lagringsplats.

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

    Anteckning

    Om klusterversionen inte är 6.0.* går du till rätt katalog i den stabila mappen.

  5. Kör följande autorest-kommando för att generera Java-klientkoden.

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

    Nedan visas ett exempel som visar användningen av autorest.

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

    Följande kommando tar servicefabric.json specifikationsfilen som indata och genererar Java-klientkod i java-rest-api-code mappen och omsluter koden i servicefabricrest namnområdet. Efter det här steget hittar du två mappar modelsoch implementation två filer ServiceFabricClientAPIs.java som package-info.java genereras i java-rest-api-code mappen.

Inkludera och använda den genererade klienten i projektet

  1. Lägg till den genererade koden på rätt sätt i projektet. Vi rekommenderar att du skapar ett bibliotek med den genererade koden och inkluderar det här biblioteket i projektet.

  2. Om du skapar ett bibliotek ska du inkludera följande beroende i bibliotekets projekt. Om du följer en annan metod inkluderar du beroendet på lämpligt sätt.

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

    Om du till exempel använder Maven-kompileringssystemet inkluderar du följande i pom.xml filen:

        <dependency>
          <groupId>com.microsoft.rest</groupId>
          <artifactId>client-runtime</artifactId>
          <version>1.2.1</version>
        </dependency>
    
  3. Skapa en RestClient med följande kod:

        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. Använd klientobjektet och gör lämpliga anrop efter behov. Här är några exempel som visar användningen av klientobjekt. Vi antar att programpaketet har skapats och laddats upp till avbildningsarkivet innan api:erna nedan används.

    • Etablera ett program

          ApplicationTypeImageStorePath imageStorePath = new ApplicationTypeImageStorePath();
          imageStorePath.withApplicationTypeBuildPath("<application-path-in-image-store>");
          client.provisionApplicationType(imageStorePath);
      
    • Skapa ett program

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

Förstå den genererade koden

För varje API hittar du fyra överlagringar av implementeringen. Om det finns valfria parametrar hittar du ytterligare fyra varianter, inklusive de valfria parametrarna. Överväg till exempel API removeReplica:et .

  1. public void removeReplica(String nodeName, UUID partitionId, String replicaId, Boolean forceRemove, Long timeout)
    • Det här är den synkrona varianten av removeReplica API-anropet
  2. public ServiceFuture<Void> removeReplicaAsync(String nodeName, UUID partitionId, String replicaId, Boolean forceRemove, Long timeout, final ServiceCallback<Void> serviceCallback)
    • Den här varianten av API-anrop kan användas om du vill använda framtida asynkron programmering och använda återanrop
  3. public Observable<Void> removeReplicaAsync(String nodeName, UUID partitionId, String replicaId)
    • Den här varianten av API-anrop kan användas om du vill använda reaktiv asynkron programmering
  4. public Observable<ServiceResponse<Void>> removeReplicaWithServiceResponseAsync(String nodeName, UUID partitionId, String replicaId)
    • Den här varianten av API-anropet kan användas om du vill använda reaktiv asynkron programmering och hantera RAW-vilosvar

Nästa steg