[MUSIC]
في التمرين السابق حصلنا على خوادم الاسترجاع الخاصة بنا حتى مرحلة معينة.
نحن قادرون الآن على ربط خوادم الاسترجاع لدينا بقاعدة بيانات mongolab،
قاعدة البيانات التي تعمل كمصدر بيانات لخوادم الاسترجاع لدينا.
نحن أيضا تحديد قوائم التحكم بالوصول للسيطرة على الوصول إلى دائرة نصف قطرها،
والراحة هنا، في أجزاء مع خادم الاسترجاع لدينا.
في هذا التمرين، سوف نستكشف علاقات الاسترجاع.
يمكننا الآن تحديد النماذج وتحديد العلاقات بين النماذج.
لذلك، على سبيل المثال، دعونا نأخذ مثال التعليق.
عند نشر تعليق حول طبق، يرتبط التعليق بالطبق.
تعليق ينتمي إلى طبق.
وبالمثل، يتم نشر تعليق من قبل مستخدم معين.
لذلك ينتمي التعليق إلى العلاقة مع هذا المستخدم المحدد.
الآن، عندما تنظر إلى العلاقة في الاتجاه العكسي،
قد يكون للطبق تعليقات متعددة مرتبطة به،
وبالمثل، قد يكون المستخدم قد نشر تعليقات متعددة.
لذلك هذه هي أكبر أنواع العلاقات التي يمكنك تعريفها
بين النماذج المختلفة داخل خادم الاسترجاع لدينا.
كما سننظر في استخدام استرجاع مختلط،
مما يسمح لنا بإضافة خصائص إضافية إلى نماذجنا.
في نهاية هذا التمرين سيكون لديك خادم استرجاع كامل
إلى حد كبير، والذي يمكننا بعد ذلك الاتصال بعميلنا الزاوي
وتكون قادرة على الاستفادة منه كنهاية خلفية لعميلنا الزاوي.
لمتابعة التمرين، في مجلد خادم الاسترجاع لدينا،
دعونا إنشاء نموذج جديد للتعليق.
لذلك سوف يحدد هذا النموذج
كتعليق، وفي هذه الحالة يتم حفظ هذا النموذج أيضًا
في MongoDB وسيكون نموذجًا ثابتًا،
وسنقوم بفضح التعليق عبر واجهة برمجة تطبيقات REST
ومجلد النموذج في المجلد المشترك
ولهذا التعليق سيكون لدينا خاصتان مرتبطتان بـ ذلك.
والخاصية الأولى هي التصنيف.
أيهما من النوع رقم.
هذا مطلوب والقيمة الافتراضية، وسوف أترك ذلك ك 5.
وستكون الخاصية الثانية هي التعليق، وهو من سلسلة النوع.
هذا مطلوب والقيمة الافتراضية فارغة.
لذلك سيكون لكل تعليق هذه الخصائص اثنين، والتصنيف والتعليق،
المرتبطة به.
أيضا، نحن بحاجة إلى تحديد الآن العلاقة بين التعليق
والمستخدم الذي يقدم التعليق، وأيضا التعليق
والطبق الذي يرتبط هذا التعليق.
وبالمثل، رأينا في التمرين السابق أنهم أضفوا
المفضلة لديهم للمستخدم.
لذلك لتحديد المفضلة، اسمحوا لي مرة أخرى تحديد نموذج،
وهذا اسم النموذج هو المفضلة ويتم حفظ هذا أيضا في MongoDB،
وهذا هو أيضا PersistedModel،
ونحن سوف فضح المفضلة لبقية API وهو في المجلد المشترك.
الآن المفضلة نفسها لا تحتاج إلى أي خاصية محددة لأن كل
من المفضلة يفعل هو ربط المستخدم المحدد مع هذا الطبق المحدد.
وبالتالي فإن المفضلة هنا سوف تستخدم ببساطة كجسر بين المستخدم
والطبق.
لذلك سوف نستخدم المفضلة كوسيلة لتحديد العلاقات بين الطبق
والمستخدم.
لذلك ليس لديها أي خصائص محددة.
حتى الآن أضفنا نموذجين إلى خادم الاسترجاع لدينا.
الآن، دعونا نبدأ تحديد العلاقات النموذجية.
الآن كما شرحت سابقا،
هناك أنواع مختلفة من العلاقات النموذجية التي يمكننا تعريفها.
دعونا نبدأ مع تحديد العلاقة بين طبق والتعليق.
لذلك لتحديد نموذج في الاسترجاع، سنقول، العلاقة رطل.
وعندما تأتي العلاقة،
نحتاج إلى تحديد النموذج الذي يمكن من خلاله إنشاء العلاقة.
لذلك في المقام الأول، سنقوم بإنشاء علاقة بين الطبق.
حتى من الأطباق، وطبق قد يكون العديد من التعليقات المرتبطة به،
لذلك هذا
هو السبب في نوع العلاقة لديه الكثير ويرتبط مع تعليق واسم الخاصية للعلاقة
سأتركها كما الافتراضي مع مجرد تعليق مع حرف صغير ج. مفتاح خارجي مخصص محدد إذا أردنا ذلك.
إذا لم نفعل ذلك، فسيقوم الاسترجاع تلقائيًا بتعيين المفتاح الخارجي،
والذي لن يكون سوى التعليقات والمعرف المرتبط به.
لذلك سوف ننظر إلى الوراء لتعريفه تلقائيا.
يمكن أن يكون لدينا أيضا من خلال النماذج، والتي في هذه الحالة لا ينطبق.
سيسمح لنا النموذج من خلال تحديد العلاقة مع نموذج واحد ونموذج آخر،
وفي هذه الحالة، ليس لدينا مثل هذه العلاقة، لذلك سنقول فقط
لا ولن نعش واجهة برمجة تطبيقات REST، وأيضا،
سنقوم بتعطيل العلاقة من أن يتم تضمينها.
وهكذا، حددنا
أن تعطيل العلاقة من أن تدرج هو لا.
في وقت لاحق سترى لماذا هذا مهم.
سيكون لدينا طريقة لتضمين المعلومات من
نموذج واحد إلى نموذج آخر من خلال القيام بتضمين هناك.
و هذا أمر طلبنا عدم منعه.
الآن وبالمثل، يمكننا تحديد العلاقة التالية
بين التعليق والأطباق.
لذلك عندما تحدد علاقة إلى التعليق والأطباق، لذلك
اسمحوا لي أن أقول أنه علاقة رطل، ونحن سوف الآن تحديد العلاقة بين التعليق.
وبما أن التعليق يمكن أن تنتمي فقط إلى طبق معين، لذلك
سنقوم بتعريف أنه ينتمي إلى علاقة، وهذا ينتمي
إلى الطبق هنا واسم الخاصية للعلاقة سيكون الأطباق.
ولن نستخدم مفتاحًا خارجيًا مخصصًا،
وسنسمح باستخدام العلاقة في واجهات برمجة التطبيقات REST.
في الواقع نحن لا نريد ذلك، لذلك كان يجب أن أكتب في لا لذلك،
ولكن سأذهب فقط وتحرير العلاقة التي تم إنشاؤها في التعليمات البرمجية الخاصة بي هناك.
حتى أتمكن من الذهاب إلى ملف.jason التعليق.وقم
فقط بتغيير هذا من نعم إلى لا هناك،
سأفعل ذلك لأنني لا أريد أن تكون متداخلة بعد ذلك.
لذلك اسمحوا لي أن المضي قدما
وجعل هذا التغيير في التعليق دعا جايسون قبل أن ننسى أن تفعل ذلك.
ثم افتح التعليق المسمى جيسون.
وترون أنه في التعليق المسمى جيسون لدينا هذه العلاقة هنا ومن
ثم سأقوم بقطع هذا لأنني لا أريد أن يتم ذلك التعشيش.
هذا خطأ قمت به أثناء الكتابة، لذلك سأحذف ذلك.
العلاقة التالية التي سأقوم بتحديدها هي بين التعليق
والعميل.
اسمحوا لي مرة أخرى، اكتب العلاقة lb هنا.
لذلك سنقوم بتحديد العلاقة بين التعليق والعميل.
تعليق ينتمي إلى عميل كما نتوقع,
و, هنا اسمحوا لي أن
أدخل صراحة, مفتاح خارجي مخصص.
أنا أفعل هذا فقط لتوضيح لك أنه يمكنني
تحديد مفتاح خارجي معين هنا.
أنا لن أعش، وأنا لن تعطيل هنا.
لذا، هذه هي العلاقة التي سأحدد بين التعليق
والعميل.
بعد ذلك, اسمحوا لي أن تحديد العلاقة بين العميل والتعليق.
حتى هنا، من العميل، العميل لديه العديد من التعليقات،
واسم ممتلكاتهم سوف أدخل كتعليقات.
وبعد ذلك، سأحدد المفتاح الخارجي كـ CustomerId.
وأنا لا تحتاج إلى نموذج من خلال هنا، وأنا لن عش ولن تعطيل.
حتى الآن لقد حددت جميع العلاقات بين التعليقات
والعميل، والتعليقات والأطباق.
الآن، نفس الشيء دعونا نعمل على المفضلة.
الآن, للمفضلة, اسمحوا لي
أن تحديد العلاقة بين الأطباق والمفضلة.
لذلك طبق يمكن أن يكون المفضلة لكثير من المستخدمين،
لذلك لديها العديد من العلاقة مع المفضلة.
وسنستخدم المفضلة هناك،
ونحن لن تحتاج إلى نموذج من خلال ولا ولا.
لذلك، الآن حددنا أن لديها العديد من العلاقات بين الطبق
والمفضلة.
اسمحوا لي الآن تحديد العلاقة بين المفضلة وطبق.
حتى لتحديد العلاقة بين المفضلة
وطبق اسمحوا لي أن أقول المفضلة ينتمي إلى طبق،
ونحن سوف تستخدم الأطباق وليس مفتاح خارجي، وليس متداخلة.
ونحن لن تعطيل العلاقة من أن تدرج.
الآن، سيكون علينا أن نحدد تلك العلاقة بين
الشخص المفضل و العميل
لذلك سنقول المفضلة ينتمي إلى عميل و,
سنقوم بتعريف المفتاح الخارجي باعتباره CustomerId.
لن نسمح بتداخل واجهة برمجة تطبيقات REST ولن نقوم بتعطيلها.
الآن العلاقة الأخيرة, هو بين العميل والمفضلة.
لذا، سنحدد الآن العلاقة بين العميل لديه العديد،
المفضلة، وهذا،
سأحدد CustomerId كمفتاح خارجي، ولا أحتاج إلى نموذج من خلال،
ولن أسمح بالتعشيش ولن أقوم بتعطيل أي شيء.
لذلك هذا كل شيء، قمنا بتحديد جميع العلاقات التي نحتاجها
بين التعليقات والعملاء والأطباق.
بين المفضلة، والعملاء، والأطباق.
الآن، دعونا فحص استخدام ميكسين.
الآن، هذا المزيج الذي سأستخدمه مع خادم Loopback الخاص بي هو
mixin يضيف الطوابع الزمنية إلى أي شيء يتم حفظه أو تحديثه.
لذلك تذكر أنه في خادم Express لدينا، قمنا بإنشاء
وتحديثها في إضافة تلقائيا باستخدام Mongoose.
الآن من أجل الاسترجاع، أحتاج إلى استخدام هذا
المزيج المحدد يسمى Lookback ds mixin الطابع الزمني.
لذلك توسدو أن لدي أولا تثبيت ميكسين في مشروعي.
لذلك سأقول npm تثبيت
loopback-ds-timestamp-mixin - save،
وتثبيت وحدة العقدة هذه.
وبمجرد تثبيت وحدة العقدة هذه، كما ترون،
هذا هو رقم الإصدار 3.4.1 الذي أستخدمه.
كما يتم تثبيت هذا المزيج، وأنا بحاجة للذهاب في
وتمكين هذا الاستخدام مزيج داخل بلدي النماذج.
للقيام بذلك يتيح الانتقال إلى التعليمات البرمجية، في التعليمات البرمجية اسمحوا لي أولا فتح
هذا النموذج الصراع المجاور، والذي هو في مجلد الخادم.
حتى في نموذج confi.json إذا ذهبت هنا سترى هذه
mixins محددة هنا.
لذلك لدينا mixins من خادم الاسترجاع المشترك و الاسترجاع.
الآن أنا ذاهب إلى إضافة في ميكسين الجديد لقد أضفته للتو هنا.
لذلك، هذا المزيج في.. /node_modules.
لذلك هذا هو في مجلد وحدات العقدة هناك حق.
/استرجاع ds-timestamp-mixin.
هذا يسمح لخادم الاسترجاع الخاص بي بالاستفادة من هذا المزيج داخل الخادم الخاص بي.
الآن ليس هذا فقط، أنا بحاجة إلى تحديد
لجميع النماذج حيث أريد أن يتم تضمين هذا المزيج.
لذلك، سأذهب الآن إلى هذا المجلد المشترك،
وفي المجلد المشترك سنقوم بتحرير ملف التعليق.json هذا
وفي ملف.json التعليق.json، سنضيف في mixin.
حتى بعد الخصائص، وسوف أضيف في ميكسين كما
المزامنة داخل علامات الاقتباس، عليك أن تقول ميكسينز.
:، و، هناك،
وداخل mixins سنرى
TimeStamp، صحيح.
هذا الشيء نفسه أنا بحاجة إلى لصق في بعض النماذج الأخرى لذلك
اسمحوا لي فقط نسخ هذا.
لذلك سنقول mixins TimeStamp صحيح في التعليقات.json.
ثم سنذهب إلى dishes.json
ثم سنقوم بإضافة هذا أيضا إلى dishes.json
وبعد ذلك سوف تذهب إلى favorite.json،
ومن ثم إضافة إلى favorite.json.
سنقوم بإضافته إلى القراء. json،
وسنقوم بإضافته إلى العروض الترويجية. json.
وحفظ جميع التغييرات.
الآن سنقوم بتكوين عدد قليل من قائمة التحكم في الوصول، لذلك
الذهاب إلى المحطة اسمحوا لي أن اكتب lb acl لتكوين بعض قوائم التحكم في الوصول.
لذلك، هنا للأطباق،
وسوف تحدد لجميع الأساليب والخصائص الحق
لا يمكن إلا أن يتم من قبل المستخدم مع المشرف دور.
لذلك هذا هو التحكم الأول في الوصول الذي أقوم بتكوينه
للأطباق، ثم أفعل الشيء نفسه للقادة.
جميع الطرق والخصائص, الكتابة, أخرى,
دور المشرف صراحة منح حق الوصول.
ثم للترقيات أيضا,
نفس, جميع الأساليب
والخصائص, الكتابة, وغيرها,
دور منح صراحة الوصول, لأنك تريد فقط المشرف
لتكون قادرة على إجراء أي تغييرات على الأطباق, الترقيات, أو قادة.
الآن للتعليقات، يمكن نشر التعليقات من قبل أي مستخدم مسجل.
لذلك للتعليقات، اسمحوا لي أن تعريف ACL للتعليقات.
سنقول التعليق، جميع الطرق
والخصائص، جميع الأنواع، جميع المستخدمين،
رفض الوصول بشكل صريح.
لأننا لا نريدهم أن يكونوا قادرين على فعل كل الأشياء
الآن، دعونا نفتح فقط بعض العمليات ليتم تمكينها من قبل المستخدمين.
لذلك للتعليقات، جميع الطرق
والخصائص، سنقول قراءة العملية.
ستكون عملية القراءة للتعليقات مستخدم مصادق عليه فقط.
لذلك فقط المستخدمين الذين تم تسجيل الدخول سوف تكون قادرة على قراءة التعليقات.
الآن وبالمثل، اسمحوا لي أن تحديد ل,
تعليقات, طريقة واحدة,
وخلق, الذين يمكن إنشاء تعليقات?
أي مستخدم مصادق عليه، يمكن لأي مستخدم مصادق عليه إنشاء تعليقات.
لذلك سنقوم صراحة منحهم الوصول, الآن,
آخر واحد للتعليقات, سنقول
للتعليق, جميع الأساليب والخصائص.
الكتابة، وهذا يعني، من يسمح لكتابة التعليق؟
يمكن للمستخدم الذي يمتلك هذا الكائن فقط إجراء تغييرات على التعليق.
لذلك فقط المستخدم الذي قدم التعليق يمكن إجراء تغييرات على التعليق،
إما تعديل أو حذف التعليق، لذلك هذا ما سوف نسمح به.
نفس مجموعة العمليات، دعونا نطبقها على المفضلة.
لذلك بالنسبة للمفضلات، نظرًا لأننا لم نقم بإضافة
أي من عناصر التحكم في الوصول، لذلك بالنسبة للمفضلة، فإن
جميع الطرق والخصائص، وجميع الأنواع،
وجميع المستخدمين، يرفض الوصول إلى هناك بشكل صريح.
بالنسبة للمفضلات، سنقوم بتعريف
جميع الطرق والخصائص، للقراءة،
فقط للمستخدم الذي يمتلك هذا الكائن.
لذلك يمكن للمستخدم فقط قراءة
المفضلة لديه أو لها، لا يجب أن يكون أي مستخدم آخر قادرا على رؤية المفضلة له أو لها.
الآن الثالث هو إنشاء المفضلة،
لذلك لإنشاء المفضلة، وسوف نقول
للالمفضلة، طريقة واحدة، وخلق،
أي مستخدم مصادق يمكن إنشاء تعليق.
وأخيرًا، بالنسبة للمفضلة، جميع الطرق
والخصائص، عملية الكتابة، فقط للمستخدم الذي يمتلك هذا الكائن.
لذلك فقط المستخدم الذي لديه إدخال المفضلة لنفسه أو
نفسها يمكن تحرير أو حذف تلك المفضلة، هذا كل شيء.
لذلك قمنا الآن بإعداد جميع ضوابط الوصول
وجميع العلاقات المختلفة لتطبيقنا.
لنبدأ الآن واجهة برمجة تطبيقات Rest الخاصة بالخادم،
ثم استكشف بعض هذه التفاصيل.
الآن، انتقل إلى تطبيقنا في المتصفح، لذلك
سنذهب إلى مستكشف LoopBack في المتصفح هنا.
في مستكشف LoopBack، ما سأقوم به أولاً هو تسجيل الدخول كمسؤول.
لذلك سنقوم بتسجيل الدخول كمشرف عن طريق الذهاب إلى/العملاء/تسجيل الدخول.
ثم هنا سوف نكتب في اسم المستخدم،
المشرف، كلمة
المرور، وكلمة المرور، وتسجيل أنفسنا في،
وبمجرد تسجيل الدخول، أنا ذاهب فقط لنسخ هذا المعرف،
لأن هذا هو رمز الوصول.
وأنا ذاهب للذهاب إلى هنا، ومن ثم تعيين رمز الوصول مع
هذا الرمز المميز الجديد الذي حصلت عليه للتو، بعد ذلك،
اسمحوا لي أن نشر بعض الأطباق إلى الخادم الخاص بي، حتى
الآن بعد أن قمت بتسجيل الدخول كمسؤول،
يجب أن تكون قادرة على نشر الأطباق إلى الخادم الخاص بي.
لذلك سوف فتح وظيفة، وتذكر أنني قد أعطيتك ملف Db.json،
حتى نتمكن من نسخ ولصق الأطباق في حقل البيانات هنا.
هذا هو الطبق الأول، وفي اللحظة التي أقوم فيها بنشر،
سيعود مع معلومات الطبق هنا.
ولاحظ أنه يضيف تلقائيًا في حقول CreateDat و UpdateDat هنا.
هذا هو الطبق الثاني، لذلك أخيرا، لقد أكملت إدخال جميع الأطباق،
وجميع القادة، وجميع الترقيات، ونحن جميعا القيام به.
لذلك دعونا الآن المضي قدما ومن
ثم تسجيل عميل جديد في النظام.
لذلك للقيام بذلك، اسمحوا لي أن إزالة
رمز الوصول هذا، وبعد ذلك سنقوم بتسجيل عميل جديد في النظام.
لذلك للقيام بذلك، سوف نذهب لنشر العملاء، وبعد ذلك للبيانات،
اسمحوا لي فقط اضغط على هذه القيمة المثال هنا، ومن ثم نشره هنا.
وبالنسبة للبيانات، الاسم الأول،
اسمحوا لي أن أسجل نفسي باسمي الأول.
لذلك سيكون
هذا مستخدمًا غير مسؤول أقوم بتسجيله،
و، وتم التحقق من هذا البريد الإلكتروني يجب أن أزيل هذا من هنا، ولكن يجب أن أقوم
بتضمين حقل كلمة المرور هنا، حتى أتمكن من تسجيل المستخدم.
لذلك أنا تسجيل مستخدم عادي جديد هنا.
لذلك عندما أقوم بالتسجيل، يعود للتأكد من
إضافة هذا المستخدم المسجل الجديد، ويعطيني أيضًا معرفًا لذلك المستخدم.
الآن اسمحوا لي تسجيل الدخول كمستخدم مسجل ومن ثم نشر اثنين من التعليقات.
لذلك لتسجيل الدخول كمستخدم مسجل، سوف أذهب إلى تسجيل دخول العميل،
ولاسم المستخدم، سأكتب في اسمي
وكلمة المرور ثم عند تسجيل الدخول، وسوف يعود ويعطيني معرف.
لاحظ الآن أن هذا المستخدم المعين هو مستخدم عادي وليس
مشرفًا، لذلك يمكن لهذا المستخدم نشر التعليقات فقط وتحرير تعليقاته الخاصة.
و أو ما بعد المفضلة وتحرير المفضلة له أو لها.
لذلك، عند نشر المستخدم، سترى أنه هو UserID عاد هنا،
شيس هو معرف للمستخدم.
لذلك، سنحتاج إلى هذا كلما
نشرنا التعليقات أو كلما نشرنا المفضلة.
لذلك، لنشر تعليق لهذا المستخدم، وذلك
لنشر تعليق، اسمحوا لي أن نشر اثنين من التعليقات نيابة عن هذا المستخدم.
لذلك، سنذهب إلى التعليقات، ثم سنقوم بنشر بعض التعليقات هنا.
لذلك، لنشر تعليق كما تلاحظ،
نحن بحاجة إلى توفير ثلاث قطع من المعلومات.
نحن بحاجة إلى توفير CustomerID، و ديشيسيد، والتصنيف والتعليق.
لذا بالنسبة لـ CustomerID، قمنا بتسجيل الدخول للتو، لذا
إذا ذهبت إلى العملاء وأسفل هنا في الأسفل.
سوف نحصل على CustomerID هنا، لذلك اسمحوا لي نسخ UserID من هنا.
ثم انتقل إلى قسم نشر التعليقات
ثم قم بلصق CustomerId هناك.
دعني أذهب الآن وأبحث عن طبق
حتى إذا ذهبت إلى, أطباق وبعد ذلك تفعل الحصول على الأطباق,
ستحصل على جميع الأطباق التي هي في النظام.
حتى من هذا اسمحوا لي أن حدد
, الطبق الأول, لذلك أنا فقط سوف تأخذ هوية الطبق.
ثم لنشر التعليقات، سنذهب فقط إلى التعليقات،
نشر حيث نقوم بتأليف تعليقنا.
وبعد ذلك سوف ألصق هوية الطبق هناك
وبالنسبة للتصنيف, وسوف تغيير هذا التصنيف ل 4 و,
مجرد نشر, هذا التعليق,
لذلك لقد نشرت تعليق واحد لهذا الطبق معين.
اسمحوا لي أن نشر تعليق واحد آخر لطبق آخر.
لذلك اسمحوا لي أن الحصول على عقد من هذا الطبق الثاني.
حتى هنا هو معرف الطبق الثاني لذلك، مرة أخرى، والعودة إلى التعليقات.
اسمحوا لي أن أغير DisHid هنا.
ثم, اسمحوا لي أن تغيير التعليقات
بحيث ترى أن هذا هو تعليق مختلف لطبق مختلف.
عندما أقوم بنشر التعليق، سترى أنه سيعود مع هذا الرد هنا،
مع التصنيف وطبق معين و CustomerId وهلم جرا.
لذلك لقد نشرت الآن تعليقين لطبقين مختلفين هنا.
اسمحوا لي, جعل هذه اثنين كما الأطباق المفضلة لدي.
لذلك للقيام بذلك، اسمحوا لي أن أذهب إلى المفضلة.
الذهاب إلى المفضلة.
اسمحوا لي أن نشر اثنين من المفضلة.
حتى لنشر المفضلة مرة أخرى، أذهب إلى آخر المفضلة هنا.
ثم أنقر على هذا ثم سألصق في
DisHid واحد، ل CustomerId، اسمحوا لي أن أذهب فقط إلى العميل هنا،
حيث قمت بتسجيل الدخول إلى العميل.
لذلك سوف نحصل على معرف المستخدم من هناك.
وهذا هو CustomerID واحد، لذلك اسمحوا لي أن أذهب إلى المفضلة.
ثم, في المفضلة
اسمحوا لي اختبار CustomerId هنا, ومن ثم نشر هذا في المفضلة.
لذلك عندما أقوم بنشر ذلك في المفضلة، فإنه يرد مرة أخرى مع هذا حتى
تتمكن من رؤية أن Dishid و CustomerId و FavoriteId قد تم نشرها هنا.
اسمحوا لي أن آخر طبق واحد أكثر إلى المفضلة حتى اسمحوا لي أن أذهب إلى,
أطباق هنا لدي طبق آخر.
لذلك اسمحوا لي أن نسخ, معرف من الطبق والذهاب إلى المفضلة بلدي
ومن ثم استبدال معرف ديش مع ذلك الطبق الجديد, ومن ثم نشر ذلك.
لذا الآن يجب أن يكون لدي اثنين من المفضلة في مجموعتي.
رائع، حتى الآن لدينا اثنين من المفضلة،
حفنة من الأطباق، واثنين من التعليقات، وكلها نشرت في.
الآن كيف يكون هذا مفيدًا؟
اسمحوا لي، إغلاق كل هذا ومن ثم سوف تظهر لك كيف يمكن أن يكون هذا مفيدا.
لذلك، الآن عندما أحصل على الأطباق، لذلك على سبيل المثال،
عندما أريد أن ننسى طبق معين.
اسمحوا لي أن الحصول على هذا الطبق الأول هنا، اسمحوا لي أن نسخ بطاقة الهوية من الطبق،
ويمكنني استرداد ذلك الطبق المحدد.
حتى هنا ترى أنني ذاهب إلى/أطباق/معرف حتى
هنا، عندما أريد استرداد هذا الطبق المحدد.
يمكنني وضع DisHid هناك ومن ثم محاولة الخروج ومن
ثم هنا أحصل على DisHid هنا.
الآن، إذا كنت ترغب في تضمين التعليقات من الطبق، ثم في المرشح،
يجب أن اكتب في تضمين بين علامات الاقتباس
ثم بين قوسين أحدد
، اسم،
العلاقة التي أريد أن تدرج في ذلك،
لذلك عندما أقول تضمين التعليقات.
لذلك هذا هو مثل المغول ملء، فإنه يعمل على نحو مماثل.
حتى عندما أقول تضمين التعليقات ومن ثم استرداد الطبق,
لاحظ أنه عندما يتم استرداد الطبق,
هنا, يمكنك الحصول على طبق ولكن أيضا يمكنك الحصول على مجموعة من التعليقات هنا.
لذلك هذه هي الطريقة التي يمكنك ملء التفاصيل من العلاقة
التي لديك مع عنصر آخر هنا.
الآن، وبالمثل، الذهاب إلى التعليقات، على سبيل المثال.
في التعليقات أيضا، عندما أسترد التعليقات، يمكنني تحديد داخل الفلتر.
لذلك عندما أقول فقط GET التعليقات، فإنه
سيعيد جميع التعليقات التي تم نشرها.
الآن، إذا كنت أرغب في ملء معلومات DisHid و CustomerId، يمكنني أن أقول تصفية.
في الفلتر، أستطيع أن أقول تضمين.
وبعد ذلك بين قوسين، يمكنني
أن أقول الأطباق لأن هذه هي العلاقة التي قمت بتعريفها في التعليقات
والأطباق، ثم الأطباق والزبون.
وعندما أسترد هذه المعلومات، سترى أنه في التعليقات التي تم إرجاعها
، لكل تعليق، ستلاحظ أن يتم إعطاء التعليق
ثم يتم ملء معلومات الطبق
المقابلة أيضًا، ويتم ملء معلومات العميل المقابلة أيضًا لكل تعليق.
وبهذه الطريقة، يمكننا الآن ملء العلاقات التي حددناها من
الأطباق تلقائيا هنا، كما هو موضح هنا.
وبالمثل، بالنسبة للمفضلات،
عندما نسترد المفضلة،
سنقول المفضلة ومعرف محدد هنا.
ثم يمكننا بعد ذلك تصفية،
بحيث المفضلة محددة يمكن استرجاعها.
لا يمكنك استرداد جميع المفضلة لأنها يمكن أن تكون المفضلة من
المستخدمين الآخرين أيضا في تلك القائمة، لذلك نحن لن تكون قادرة على القيام GET على جميع المفضلة.
ولكن بدلا من ذلك، عندما نسترد هذا، يمكنك بعد ذلك طلب
المعلومات ليتم ملؤها هنا بناء على العلاقات.
لذلك يمكننا أن نقول، في الاقتباس، («تشمل»: وأقواس معقوفة مكتوبة.
يمكننا أن نقول ["أطباق»، «عميل"])،
واسترداد المعلومات.
لذلك ستلاحظ أنه هنا، في هيئة الاستجابة،
تحصل على المفضلة، ولكن أيضا الطبق المقابل
ومعلومات العميل المقابلة مليئة هنا.
هكذا يمكننا استرداد معلومات إضافية
من موقع الخادم الخاص بنا كما هو مطلوب.
مع هذا، نكمل هذا التمرين.
في هذا التمرين، لقد أظهرت لك كيف يمكننا تحديد العلاقات المختلفة
ومن ثم تكون قادرة على استرداد المعلومات، وأيضا استخدام هذا
فلتر تضمين من أجل تضمين المعلومات الإضافية لتلك العلاقة في
المستند عند استرداد المستند أو مجموعة من الوثائق.
مع هذا، نكمل هذا التمرين.
لذلك في هذه التمارين الثلاثة التي قمنا بها حتى الآن مع LooBack، لقد
أوضحت جوانب مختلفة من كيفية تكوين وبناء خادم LoopBack الخاص بك.
مع هذا، نكمل هذا التمرين.
هذا هو الوقت المناسب بالنسبة
لك للقيام تعليق GET مع العلاقات LooBack الرسالة.
[ موسيقى]