واجهات برمجة تطبيقات عميل Azure Service Fabric Java

تسمح واجهات برمجة تطبيقات عميل Service Fabric بتوزيع وإدارة التطبيقات والحاويات المستندة إلى الخدمات المصغرة في نظام مجموعة Service Fabric على Azure أو محليا أو على جهاز التطوير المحلي أو في سحابة أخرى. توضح هذه المقالة كيفية إنشاء واستخدام واجهات برمجة تطبيقات عميل Service Fabric Java أعلى واجهات برمجة تطبيقات REST لعميل Service Fabric

إنشاء رمز العميل باستخدام AutoRest

AutoRest هي أداة تقوم بإنشاء مكتبات العملاء للوصول إلى خدمات الويب RESTful. الإدخال إلى AutoRest هو مواصفات تصف واجهة برمجة تطبيقات REST باستخدام تنسيق مواصفات OpenAPI. واجهات برمجة تطبيقات REST لعميل Service Fabric اتبع هذه المواصفات.

اتبع الخطوات المذكورة أدناه لإنشاء رمز عميل Service Fabric Java باستخدام أداة AutoRest.

  1. قم بتثبيت nodejs وNPM على جهازك

    إذا كنت تستخدم Linux ثم:

    sudo apt-get install npm
    sudo apt install nodejs
    

    إذا كنت تستخدم نظام التشغيل Mac OS X، فحينئذ:

    brew install node
    
  2. تثبيت AutoRest باستخدام NPM.

    npm install -g autorest
    
  3. قم بنسخ مستودع azure-rest-api-specs في جهازك المحلي وانتقل إلى الموقع المستنسخ من محطة جهازك.

  4. انتقل إلى الموقع المذكور أدناه في المستودع المستنسخ.

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

    ملاحظة

    إذا لم يكن إصدار نظام المجموعة الخاص بك 6.0.* فانتقل إلى الدليل المناسب في المجلد المستقر.

  5. قم بتشغيل أمر autorest التالي لإنشاء التعليمة البرمجية لعميل Java.

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

    فيما يلي مثال يوضح استخدام autorest.

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

    يأخذ الأمر التالي ملف المواصفات servicefabric.json كإدخال وينشئ تعليمات برمجية لعميل Java في java-rest-api-codeمجلد ويرفق التعليمة البرمجية في مساحة الاسم servicefabricrest. بعد هذه الخطوة ستجد مجلدين models، وimplementation وملفين ServiceFabricClientAPIs.java وpackage-info.java إنشاؤهما في المجلد java-rest-api-code.

تضمين العميل الذي تم إنشاؤه واستخدامه في مشروعك

  1. أضف التعليمة البرمجية التي تم إنشاؤها بشكل مناسب إلى مشروعك. نوصي بإنشاء مكتبة باستخدام التعليمة البرمجية التي تم إنشاؤها وتضمين هذه المكتبة في مشروعك.

  2. إذا كنت تقوم بإنشاء مكتبة، فقم بتضمين التبعية التالية في مشروع مكتبتك. إذا كنت تتبع نهجا مختلفا، فقم بتضمين التبعية بشكل مناسب.

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

    على سبيل المثال، إذا كنت تستخدم نظام إنشاء Maven قم بتضمين ما يلي في ملفك pom.xml:

        <dependency>
          <groupId>com.microsoft.rest</groupId>
          <artifactId>client-runtime</artifactId>
          <version>1.2.1</version>
        </dependency>
    
  3. إنشاء 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. استخدم عنصر العميل وقم بإجراء المكالمات المناسبة كما هو مطلوب. فيما يلي بعض الأمثلة التي توضح استخدام عنصر العميل. نفترض أن حزمة التطبيق تم إنشاؤها وتحميلها في متجر الصور قبل استخدام واجهة برمجة التطبيقات أدناه.

    • توفير تطبيق

          ApplicationTypeImageStorePath imageStorePath = new ApplicationTypeImageStorePath();
          imageStorePath.withApplicationTypeBuildPath("<application-path-in-image-store>");
          client.provisionApplicationType(imageStorePath);
      
    • أنشئ تطبيق

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

فهم التعليمات البرمجية التي تم إنشاؤها

لكل واجهة برمجة تطبيقات، ستجد أربعة أحمال زائدة من التنفيذ. إذا كانت هناك معلمات اختيارية، فستجد أربعة اختلافات أخرى بما في ذلك تلك المعلمات الاختيارية. على سبيل المثال، ضع في اعتبارك واجهة برمجة التطبيقات removeReplica.

  1. public void removeReplica(String nodeName, UUID partitionId, String replicaId, Boolean forceRemove, Long timeout)
    • هذا هو البديل المتزامن لاستدعاء واجهة برمجة تطبيقات removeReplica
  2. public ServiceFuture<Void> removeReplicaAsync(String nodeName, UUID partitionId, String replicaId, Boolean forceRemove, Long timeout, final ServiceCallback<Void> serviceCallback)
    • يمكن استخدام هذا البديل من استدعاء واجهة برمجة التطبيقات إذا كنت ترغب في استخدام البرمجة غير المتزامنة المستندة إلى المستقبل واستخدام عمليات رد الاتصال
  3. public Observable<Void> removeReplicaAsync(String nodeName, UUID partitionId, String replicaId)
    • يمكن استخدام هذا البديل من استدعاء API إذا كنت ترغب في استخدام البرمجة غير المتزامنة التفاعلية
  4. public Observable<ServiceResponse<Void>> removeReplicaWithServiceResponseAsync(String nodeName, UUID partitionId, String replicaId)
    • يمكن استخدام هذا البديل من استدعاء API إذا كنت ترغب في استخدام البرمجة غير المتزامنة التفاعلية والتعامل مع استجابة RAW للراحة

الخطوات التالية