Klient-API:er för Azure Service Fabric Java

Service Fabric klient-API:er gör det möjligt att distribuera och hantera mikrotjänstbaserade program och containrar i ett Service Fabric kluster i Azure, lokalt, på den lokala utvecklingsdatorn eller i andra moln. I den här artikeln beskrivs hur du genererar och använder Service Fabric Java-klient-API:er ovanpå Service Fabric-klientens REST-API:er

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 openAPI-specifikationsformatet. Service Fabric klientens REST-API:er 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 gör du följande:

     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 terminalen på datorn.

  4. Gå till den plats som anges nedan i den klonade lagringsplatsen.

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

    Anteckning

    Om klusterversionen inte är 6.0.* går du till lämplig katalog i mappen stable.

  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 omger 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 hjälp av den genererade koden och inkluderar det här biblioteket i projektet.

  2. Om du skapar ett bibliotek inkluderar du 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-byggsystemet 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 följer några exempel som visar användningen av klientobjekt. Vi förutsätter att programpaketet har skapats och laddats upp till avbildningsarkivet innan du använder API:et nedan.

    • 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 API-anropet removeReplica
  2. public ServiceFutureVoid<> removeReplicaAsync(String nodeName, UUID partitionId, String replicaId, Boolean forceRemove, Long timeout, final ServiceCallbackVoid>< 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 ObservableVoid<> 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 ObservableServiceResponseVoid<<>> removeReplicaWithServiceResponseAsync(String nodeName, UUID partitionId, String replicaId)
    • Den här varianten av API-anrop kan användas om du vill använda reaktiv asynkron programmering och hantera RAW-restsvar

Nästa steg