Interfejsy API klienta Java usługi Azure Service Fabric

Interfejsy API klienta usługi Service Fabric umożliwiają wdrażanie aplikacji i kontenerów opartych na mikrousługach oraz zarządzanie nimi w klastrze usługi 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 Java usługi Service Fabric na podstawie interfejsów API REST klienta usługi 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 opisowa interfejsu API REST przy użyciu formatu specyfikacji interfejsu OpenAPI. Interfejsy API REST klienta usługi Service Fabric są zgodne z tą specyfikacją.

Wykonaj poniższe kroki, aby wygenerować kod klienta Java usługi Service Fabric 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, wykonaj następujące polecenia:

    brew install node
    
  2. Zainstaluj autorest przy użyciu narzędzia NPM.

    npm install -g autorest
    
  3. Rozwidlenie i sklonowanie repozytorium azure-rest-api-specs na komputerze lokalnym i przejście 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 znajduje się 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 otacza kod w servicefabricrest przestrzeni nazw. Po wykonaniu tego kroku znajdziesz dwa foldery models, implementation i dwa pliki ServiceFabricClientAPIs.java i package-info.java wygenerowane w folderze java-rest-api-code .

Uwzględnij wygenerowanego klienta w projekcie i użyj go

  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ę, uwzględnij następującą zależność w projekcie biblioteki. Jeśli korzystasz z innego podejścia, uwzględnij odpowiednio 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 elementy pom.xml :

        <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, można znaleźć cztery inne odmiany, w tym te parametry opcjonalne. Rozważmy na przykład interfejs API removeReplica.

  1. public void removeReplica(String nodeName, UUID partitionId, String replicaId, Boolean forceRemove, Long Timeout)
    • Jest to wariant synchroniczny wywołania interfejsu API removeReplica
  2. public ServiceFuture<Void> removeReplicaAsync(String nodeName, UUID partitionId, String replicaId, Boolean forceRemove, Long timeout, final ServiceCallback Void> serviceCallback<)
    • Tego wariantu wywołania interfejsu API można użyć, jeśli chcesz użyć programowania asynchronicznego opartego na przyszłości i używania wywołań zwrotnych
  3. public Observable<Void> removeReplicaAsync(String nodeName, UUID partitionId, String replicaId)
    • Tego wariantu wywołania interfejsu API można użyć, jeśli chcesz użyć programowania asynchronicznego reaktywnego
  4. public Observable<ServiceResponse<Void>> removeReplicaWithServiceResponseAsync(String nodeName, UUID partitionId, String replicaId)
    • Tego wariantu wywołania interfejsu API można użyć, jeśli chcesz użyć programowania asynchronicznego reaktywnego i radzić sobie z odpowiedzią REST RAW

Następne kroki