سؤال

لقد وجدت سلوكا غريبا عند إنشاء المكتبات العميلين لنقاط النهاية الخاصة بي.

في مشروع APPENGINE الخاص بي، لدي فصول نقطة النهاية التي تعالج العمليات لشخصيتين:

groadenptoint for the Entity Group

contactendoint for Enty Contact

كيان المجموعة له قائمة جهات الاتصال، لأنه في بعض الأحيان يتم استدعاء طريقة API ل API ل Groupendpoint، يجب عليك تحديث جهات الاتصال الخاصة بها.

المشكلة هي عندما تولد المكتبات العميلين، يتم إنشاء كيان جهة الاتصال في مساحات أسماء مختلفة (واحد لكل نقطة نهاية)، وهو أمر مربكي للغاية، لأنني في نهاية المطاف مع نفس الفئة (بالضبط نفس الشيء) مرتين. < / ص>

هنا هو مثال:

group.java

giveacodicetagpre.

groadendpoint.java (الرمز الداومي للمثال)

giveacodicetagpre.

contact.java

giveacodicetagpre.

contactendoint.java (رمز وهمية للمثال)

giveacodicetagpre.

build.gradle

giveacodicetagpre.

عندما أقوم بإنشاء المكتبات العميلين، فإنه ينشئ GroupendPoint-V1-Java.zip و Contactendoint-v1-java.zip في دليل البناء الخاص بي. إذا قمت بإجراء استخراج هذه الملفات، أرى ذلك لكل ملف مضغوط لدي فئة اتصال.

for groupendpoint-v1-java.zip:

giveacodicetagpre.

for contactendoint-v1-java.zip:

giveacodicetagpre.

لاحظ أن الاختلاف الوحيد هو أنهم ينتمون إلى مساحات أسماء مختلفة. هذا مربك للغاية عندما أستخدم المكتبات العميلة.

كيف يمكنني تجنب هذا السلوك؟

شكرا.

هل كانت مفيدة؟

المحلول

كنت أواجه نفس المشكلة واكتشفت طريقة لحل هذا. قد يكون لها بعض المزايا والقيود ولكني سأقدمها هنا.

لديك نماذج مختلفة (على جانب العميل) لأنها في ليبس مختلفة. على سبيل المثال، ستكون قائمة جهات الاتصال الخاصة بك في libcontactendingpoint و libgretpoint نقطة أخرى، حيث يتم استخدام فئة الاتصال الخاصة بك في كليهما.

من أجل الحصول على فئة واحدة فقط تمثل كيانك على جانب العميل، ستحتاج إلى إبقائها فقط في نقطة نهاية واحدة (في مشروع العميل). لذلك، طريقة واحدة للقيام بذلك، ستكون تستخدم التعليق التوضيحي في API. يتم استخدام هذا التعليق التوضيحي في جميع فصول نقاط النهاية الخاصة بك. لذلك، إذا كان لديك صفك groupendpoint لديه api (name="groadpointpoint") ، سيتم إنشاء نقطة libgroupendport. إذا كنت تريد الاتصال والمجموعة في نقطة النهاية نفسها، دون إجراءات تدوير، يجب أن تشير فئات نقطة النهاية إلى نفس API. الحل:

giveacodicetagpre. سيكون لدى

contactendpoint أيضا generalendoint (يمكنك استخدام أي اسم بشرط متساويين).

giveacodicetagpre.

الآن، لن تواجه هذه المشكلة. ومع ذلك، تذكر أنه الآن، في جانب العميل، بدلا من استخدام GroupendPoint أو اتصال النقاب للقيام بعملياتك واستدعاء طرق نقطة النهاية هذه، يجب عليك الآن استخدام GeneralenPoint.

غير الافتراض:

  1. جميع طرق الطبقات التي تشير إلى نفس api ستكون في نفس الفئة بعد جيل مكتبة نقطة النهاية السحابية
  2. طرق في الفصول الدراسية التي تشير إلى نفس api (ولكن فئات مختلفة في java) لا يمكن أن يكون لها نفس الاسم apimethod (الاسم="nameOfMethod")
  3. 1 غير مهم لأنك لا تحرير مكتبةك، ما عليك سوى استدعاء الطريقة. يتطلب 2nd عناية عند إنشاء طرق عبر فصولك في مشروع محرك التطبيق الخاص بك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top