Google CloudPoints EndPoints Libraries Generation Generation Entracations
-
26-12-2019 - |
سؤال
لقد وجدت سلوكا غريبا عند إنشاء المكتبات العميلين لنقاط النهاية الخاصة بي.
في مشروع 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.
غير الافتراض:
- جميع طرق الطبقات التي تشير إلى نفس api ستكون في نفس الفئة بعد جيل مكتبة نقطة النهاية السحابية
- طرق في الفصول الدراسية التي تشير إلى نفس api (ولكن فئات مختلفة في java) لا يمكن أن يكون لها نفس الاسم apimethod (الاسم="nameOfMethod")
1 غير مهم لأنك لا تحرير مكتبةك، ما عليك سوى استدعاء الطريقة. يتطلب 2nd عناية عند إنشاء طرق عبر فصولك في مشروع محرك التطبيق الخاص بك.