Interfejsy API klienta java usługi Azure Service Fabric

Service Fabric interfejsy API klienta umożliwiają wdrażanie aplikacji i kontenerów opartych na mikrousługach oraz zarządzanie nimi w klastrze Service Fabric na platformie Azure, lokalnie, na lokalnym komputerze deweloperskim lub w innej chmurze. W tym artykule opisano sposób generowania i używania interfejsów API klienta Service Fabric Java na podstawie interfejsów API REST klienta Service Fabric

Generowanie kodu klienta przy użyciu funkcji AutoRest

AutoRest to narzędzie, które generuje biblioteki klienta na potrzeby uzyskiwania dostępu do usług internetowych RESTful. Dane wejściowe do rozwiązania AutoRest to specyfikacja opisując interfejs API REST przy użyciu formatu specyfikacji OpenAPI. Service Fabric interfejsy API REST klienta są zgodne z tą specyfikacją.

Wykonaj poniższe kroki, aby wygenerować Service Fabric kod klienta Java przy użyciu narzędzia AutoRest.

  1. Zainstaluj środowisko NodeJs i menedżera NPM na swojej maszynie

    Jeśli używasz systemu Linux, wykonaj następujące polecenia:

     sudo apt-get install npm
     sudo apt install nodejs
    

    Jeśli używasz systemu Mac OS X, wówczas:

     brew install node
    
  2. Zainstaluj rozwiązanie AutoRest przy użyciu narzędzia NPM.

     npm install -g autorest
    
  3. Rozwidlenie i sklonowanie repozytorium azure-rest-api-specs na komputerze lokalnym i przejdź do sklonowanej lokalizacji z terminalu maszyny.

  4. Przejdź do lokalizacji wymienionej poniżej w sklonowanym repozytorium.

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

    Uwaga

    Jeśli wersja klastra nie jest 6.0.*, przejdź do odpowiedniego katalogu w stabilnym folderze.

  5. Uruchom następujące polecenie autorest, aby wygenerować kod klienta Java.

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

    Poniżej przedstawiono przykład pokazujący użycie autorestu.

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

    Następujące polecenie przyjmuje servicefabric.json plik specyfikacji jako dane wejściowe i generuje kod klienta Java w java-rest-api- code folderze i dołącza kod w servicefabricrest przestrzeni nazw. Po tym kroku znajdziesz dwa foldery modelsi implementation dwa pliki ServiceFabricClientAPIs.java i package-info.java wygenerowane w folderze java-rest-api-code .

Dołączanie i używanie wygenerowanego klienta w projekcie

  1. Dodaj wygenerowany kod odpowiednio do projektu. Zalecamy utworzenie biblioteki przy użyciu wygenerowanego kodu i dołączenie tej biblioteki do projektu.

  2. Jeśli tworzysz bibliotekę, dołącz następującą zależność w projekcie biblioteki. Jeśli korzystasz z innego podejścia, należy odpowiednio uwzględnić zależność.

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

    Jeśli na przykład używasz systemu kompilacji maven, w pliku uwzględnij następujące pom.xml elementy:

     	<dependency>
     	  <groupId>com.microsoft.rest</groupId>
     	  <artifactId>client-runtime</artifactId>
     	  <version>1.2.1</version>
     	</dependency>
    
  3. Utwórz obiekt RestClient przy użyciu następującego kodu:

     	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. Użyj obiektu klienta i wykonaj odpowiednie wywołania zgodnie z potrzebami. Poniżej przedstawiono kilka przykładów, które pokazują użycie obiektu klienta. Załóżmy, że pakiet aplikacji jest kompilowany i przekazywany do magazynu obrazów przed użyciem poniższych interfejsów API.

    • Aprowizuj aplikację

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

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

Opis wygenerowanego kodu

Dla każdego interfejsu API znajdziesz cztery przeciążenia implementacji. Jeśli istnieją opcjonalne parametry, znajdziesz cztery kolejne odmiany, w tym te opcjonalne parametry. Rozważmy na przykład interfejs API removeReplica.

  1. public void removeReplica(String nodeName, UUID partitionId, String replicaId, Wartość logiczna forceRemove, Długi limit czasu)
    • Jest to synchroniczny wariant wywołania interfejsu API removeReplica
  2. public ServiceFutureVoid<> removeReplicaAsync(String nodeName, UUID partitionId, String replicaId, Boolean forceRemove, Long timeout, final ServiceCallbackVoid>< serviceCallbackBack)
    • Ten wariant wywołania interfejsu API może być używany, jeśli chcesz używać programowania asynchronicznego opartego na przyszłości i używania wywołań zwrotnych
  3. public ObservableVoid<> removeReplicaAsync(String nodeName, UUID partitionId, String replicaId)
    • Tego wariantu wywołania interfejsu API można użyć, jeśli chcesz użyć reaktywnego programowania asynchronicznego
  4. public ObservableServiceResponseVoid<<>> removeReplicaWithServiceResponseAsync(String nodeName, UUID partitionId, String replicaId)
    • Tego wariantu wywołania interfejsu API można użyć, jeśli chcesz użyć reaktywnego programowania asynchronicznego i radzić sobie z odpowiedzią REST RAW

Następne kroki