Azure Service Fabric Java-client-API's

Service Fabric client-API's kunnen toepassingen en containers op basis van microservices implementeren en beheren in een Service Fabric-cluster in Azure, on-premises, lokale ontwikkelcomputer of in een andere cloud. In dit artikel wordt beschreven hoe u Service Fabric Java-client-API's kunt genereren en gebruiken boven op de REST API's van de Service Fabric-client

De clientcode genereren met AutoRest

AutoRest is een hulpprogramma waarmee clientbibliotheken worden gegenereerd voor toegang tot RESTful-webservices. Invoer voor AutoRest is een specificatie die de REST API beschrijft met behulp van de OpenAPI-specificatieindeling. Service Fabric CLIENT REST API's volgen deze specificatie.

Volg de onderstaande stappen om Service Fabric Java-clientcode te genereren met behulp van het hulpprogramma AutoRest.

  1. nodejs en NPM installeren op uw computer

    Als u Linux gebruikt, gaat u als volgt te werk:

     sudo apt-get install npm
     sudo apt install nodejs
    

    Als u Mac OS X gebruikt, gaat u als volgt te werk:

     brew install node
    
  2. AutoRest installeren met NPM.

     npm install -g autorest
    
  3. Fork and clone azure-rest-api-specs repository in your local machine and go to the cloned location from the terminal of your machine.

  4. Ga naar de onderstaande locatie in uw gekloonde opslagplaats.

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

    Notitie

    Als uw clusterversie niet 6.0.* is, gaat u naar de juiste map in de stabiele map.

  5. Voer de volgende autorest-opdracht uit om de Java-clientcode te genereren.

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

    Hieronder ziet u een voorbeeld waarin het gebruik van autorest wordt gedemonstreerd.

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

    Met de volgende opdracht wordt servicefabric.json een specificatiebestand gebruikt als invoer en wordt Java-clientcode gegenereerd in java-rest-api- code de map en wordt de code in de naamruimte geplaatst servicefabricrest . Na deze stap vindt u twee mappen modelsen implementation twee bestanden ServiceFabricClientAPIs.java en package-info.java gegenereerd in de java-rest-api-code map.

De gegenereerde client opnemen en gebruiken in uw project

  1. Voeg de gegenereerde code op de juiste wijze toe aan uw project. U wordt aangeraden een bibliotheek te maken met behulp van de gegenereerde code en deze bibliotheek op te nemen in uw project.

  2. Als u een bibliotheek maakt, neemt u de volgende afhankelijkheid op in het project van uw bibliotheek. Als u een andere benadering volgt, neemt u de afhankelijkheid op de juiste manier op.

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

    Als u bijvoorbeeld het Maven-buildsysteem gebruikt, neemt u het volgende op in uw pom.xml bestand:

     	<dependency>
     	  <groupId>com.microsoft.rest</groupId>
     	  <artifactId>client-runtime</artifactId>
     	  <version>1.2.1</version>
     	</dependency>
    
  3. Maak een RestClient met behulp van de volgende code:

     	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. Gebruik het clientobject en voer indien nodig de juiste aanroepen uit. Hier volgen enkele voorbeelden die het gebruik van het clientobject demonstreren. We gaan ervan uit dat het toepassingspakket is gebouwd en geĆ¼pload naar het afbeeldingsarchief voordat u de onderstaande API's gebruikt.

    • Een toepassing inrichten

        	ApplicationTypeImageStorePath imageStorePath = new ApplicationTypeImageStorePath();
        	imageStorePath.withApplicationTypeBuildPath("<application-path-in-image-store>");
        	client.provisionApplicationType(imageStorePath);
      
    • Een app maken

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

Inzicht in de gegenereerde code

Voor elke API vindt u vier overbelastingen van de implementatie. Als er optionele parameters zijn, vindt u nog vier variaties, waaronder die optionele parameters. Denk bijvoorbeeld aan de API removeReplica.

  1. public void removeReplica(String nodeName, UUID partitionId, String replicaId, Booleaanse forceRemove, Long time-out)
    • Dit is de synchrone variant van de removeReplica-API-aanroep
  2. public ServiceFutureVoid<> removeReplicaAsync(String nodeName, UUID partitionId, String replicaId, Boolean forceRemove, Long time-out, final ServiceCallbackVoid>< serviceCallback)
    • Deze variant van de API-aanroep kan worden gebruikt als u toekomstige asynchrone programmering wilt gebruiken en callbacks wilt gebruiken
  3. public ObservableVoid<> removeReplicaAsync(String nodeName, UUID partitionId, String replicaId)
    • Deze variant van de API-aanroep kan worden gebruikt als u reactieve asynchrone programmering wilt gebruiken
  4. public ObservableServiceResponseVoid<<>> removeReplicaWithServiceResponseAsync(String nodeName, UUID partitionId, String replicaId)
    • Deze variant van de API-aanroep kan worden gebruikt als u reactieve asynchrone programmering wilt gebruiken en het RAW-rest-antwoord wilt verwerken

Volgende stappen