Azure Service Fabric Java-client-API's

Met Service Fabric-client-API's kunt u toepassingen en containers op basis van microservices implementeren en beheren in een Service Fabric-cluster in Azure, on-premises, op een lokale ontwikkelcomputer of in een andere cloud. In dit artikel wordt beschreven hoe u Service Fabric Java-client-API's genereert en gebruikt 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 Specification-indeling. Rest API's van service Fabric-client 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. Installeer AutoRest met behulp van NPM.

     npm install -g autorest
    
  3. Fork en kloon opslagplaats azure-rest-api-specs op uw lokale computer en ga naar de gekloonde locatie vanuit de terminal van uw computer.

  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 van het gebruik van autorest.

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

    De volgende opdracht neemt servicefabric.json het specificatiebestand als invoer en genereert Java-clientcode in java-rest-api- code de map en plaatst de code in servicefabricrest de naamruimte. Na deze stap vindt u twee mappen modelsimplementation en twee bestanden ServiceFabricClientAPIs.java die package-info.java in de java-rest-api-code map zijn gegenereerd.

De gegenereerde client opnemen en gebruiken in uw project

  1. Voeg de gegenereerde code op de juiste manier 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 zo 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 de installatiekopieopslag voordat de onderstaande API's worden 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 overloads aan implementaties. 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 ServiceFuture<Void> removeReplicaAsync(String nodeName, UUID partitionId, String replicaId, Boolean forceRemove, Long timeout, final ServiceCallback<Void> serviceCallback)
    • Deze variant van de API-aanroep kan worden gebruikt als u toekomstige asynchrone programmering wilt gebruiken en callbacks wilt gebruiken
  3. public Observable<Void> 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 Observable<ServiceResponse<Void>> 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