Rozhraní API klienta Azure Service Fabric Java

Service Fabric klientská rozhraní API umožňují nasazovat a spravovat aplikace a kontejnery založené na mikroslužbách v clusteru Service Fabric v Azure, v místním prostředí, na místním vývojovém počítači nebo v jiném cloudu. Tento článek popisuje, jak generovat a používat rozhraní API klienta Service Fabric Javě nad rozhraními REST API Service Fabric klienta.

Vygenerování klientského kódu pomocí funkce AutoRest

AutoRest je nástroj, který generuje klientské knihovny pro přístup k webovým službám RESTful. Input to AutoRest je specifikace, která popisuje rozhraní REST API pomocí formátu Specifikace OpenAPI. Service Fabric rozhraní REST API klienta se řídí touto specifikací .

Postupujte podle níže uvedených kroků a vygenerujte kód klienta Service Fabric Javě pomocí nástroje AutoRest.

  1. Instalace nodejs a NPM na počítači

    Pokud používáte Linux, pak:

     sudo apt-get install npm
     sudo apt install nodejs
    

    Pokud používáte Mac OS X, pak:

     brew install node
    
  2. Nainstalujte automatickéresty pomocí NPM.

     npm install -g autorest
    
  3. Fork a klonování úložiště azure-rest-api-specs v místním počítači a přechod na klonované umístění z terminálu počítače.

  4. Přejděte do umístění uvedené níže v naklonovaném úložišti.

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

    Poznámka

    Pokud vaše verze clusteru není 6.0.* , přejděte do příslušného adresáře ve stabilní složce.

  5. Spuštěním následujícího automatického příkazu vygenerujte kód klienta Java.

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

    Níže je příklad demonstrující použití autorestu.

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

    Následující příkaz přebírá servicefabric.json soubor specifikace jako vstup a vygeneruje kód klienta Java ve java-rest-api- code složce a uzavře kód do servicefabricrest oboru názvů. Po tomto kroku najdete dvě složky modelsimplementation a dva soubory ServiceFabricClientAPIs.java a package-info.java vygenerované ve java-rest-api-code složce.

Zahrnutí a použití vygenerovaného klienta v projektu

  1. Do projektu přidejte vygenerovaný kód odpovídajícím způsobem. Doporučujeme vytvořit knihovnu pomocí vygenerovaného kódu a zahrnout tuto knihovnu do projektu.

  2. Pokud vytváříte knihovnu, vložte do projektu knihovny následující závislost. Pokud postupujete podle jiného přístupu, uveďte závislost odpovídajícím způsobem.

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

    Pokud například používáte systém sestavení Maven, do souboru patří následující pom.xml :

     	<dependency>
     	  <groupId>com.microsoft.rest</groupId>
     	  <artifactId>client-runtime</artifactId>
     	  <version>1.2.1</version>
     	</dependency>
    
  3. Pomocí následujícího kódu vytvořte RestClient:

     	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. Použijte objekt klienta a podle potřeby proveďte příslušná volání. Tady je několik příkladů, které ukazují použití klientského objektu. Předpokládáme, že balíček aplikace je před použitím následujícího rozhraní API integrovaný a nahraný do úložiště obrázků.

    • Zřízení aplikace

        	ApplicationTypeImageStorePath imageStorePath = new ApplicationTypeImageStorePath();
        	imageStorePath.withApplicationTypeBuildPath("<application-path-in-image-store>");
        	client.provisionApplicationType(imageStorePath);
      
    • Vytvoření aplikace

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

Vysvětlení vygenerovaného kódu

Pro každé rozhraní API najdete čtyři přetížení implementace. Pokud jsou volitelné parametry, najdete čtyři další varianty, včetně těchto volitelných parametrů. Představte si například rozhraní API removeReplica.

  1. public void removeReplica(String nodeName, UUID partitionId, String replicaId, Boolean forceRemove, Long timeout)
    • Toto je synchronní varianta volání rozhraní API removeReplica.
  2. public ServiceFutureVoid<> removeReplicaAsync(String nodeName, UUID partitionId, String replicaId, Boolean forceRemove, Long timeout, final ServiceCallbackVoid>< serviceCallback)
    • Tuto variantu volání rozhraní API je možné použít, pokud chcete použít budoucí asynchronní programování a používat zpětné volání.
  3. public ObservableVoid<> removeReplicaAsync(String nodeName, UUID partitionId, String replicaId)
    • Tuto variantu volání rozhraní API je možné použít, pokud chcete použít reaktivní asynchronní programování.
  4. public ObservableServiceResponseVoid<<>> removeReplicaWithServiceResponseAsync(String nodeName, UUID partitionId, String replicaId)
    • Tuto variantu volání rozhraní API je možné použít, pokud chcete použít reaktivní asynchronní programování a zpracovat odpověď na rest RAW.

Další kroky