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.
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
Installera AutoRest med NPM.
npm install -g autorest
Förgrena och klona lagringsplatsen azure-rest-api-specs på den lokala datorn och gå till den klonade platsen från datorns terminal.
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.
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 ijava-rest-api-code
mappen och omsluter koden iservicefabricrest
namnområdet. Efter det här steget hittar du två mapparmodels
ochimplementation
två filerServiceFabricClientAPIs.java
sompackage-info.java
genereras ijava-rest-api-code
mappen.
Inkludera och använda den genererade klienten i projektet
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.
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>
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);
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 .
- public void removeReplica(String nodeName, UUID partitionId, String replicaId, Boolean forceRemove, Long timeout)
- Det här är den synkrona varianten av removeReplica API-anropet
- 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
- 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
- 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
- Läs mer om REST-API:er för Service Fabric