Mailbox REST API مع Laravel. هذا عميل بريد إلكتروني صغير لإدارة الرسائل الداخلية. لقد تم تزويدي بنموذج أولي بسيط لواجهة برمجة تطبيقات صندوق البريد الأساسية التي يتم فيها إدراج الرسائل المقدمة. يمكن وضع علامة على كل رسالة كمقروءة ويمكنك أرشفة الرسائل الفردية.
PHP 7.0 وmysql 5.6 وApache 2.4 في Ubuntu 16.04 Laravel 5.2
================================================================================================== =========== ================================================================================================== ===========
هذا هو إطار تطوير Laravel الكامل. حيث تم تنفيذ جميع REST API. يمكنك تغيير تكوين اتصالات قاعدة البيانات. قم أيضًا بتغيير المسار وفقًا لجذر المستند لمجلد التطبيق. على سبيل المثال. http://laravel/ [مضيف افتراضي]
قم باستنساخ Git أو تنزيل المجلد بأكمله في جذر المستند أو في المضيف الظاهري. ثم قم بتشغيل الأوامر التالية من المحطة: ###php artisan make:migration mail_details###
استخدم عميل REST لاختبار واجهة برمجة التطبيقات.
استيراد الرسائل من ملف JSON لتزويد قاعدة البيانات ببعض أمثلة الرسائل، يوجد ملف JSON متوفر والذي يجب استيراده إلى قاعدة البيانات. الرجاء كتابة مهمة يمكنها استيراد هذه الرسائل إلى قاعدة البيانات messages_sample.json
تمت المشاركة في المجلد /helpdocuments/
واجهة برمجة تطبيقات الرسائل المهمة الرئيسية هي إنشاء واجهة برمجة تطبيقات للرسائل. يجب أن تكون واجهة برمجة تطبيقات قائمة على REST مع حمولات بتنسيق JSON. يجب أن تدعم واجهة برمجة التطبيقات حالات الاستخدام التالية.
طلب جيسون
عنوان URL: http://laravel/api/v1/mailbox/savemessages
طلب جيسون
{ "limit" : " 6 " }
عنوان URL: http://laravel/api/v1/mailbox
استجابة جيسون
{ "error" : false , "message" : " All mail fetched " , "mails" :{ "total" : 10 , "per_page" : 5 , "current_page" : 1 , "last_page" : 2 , "next_page_url" : " http: // laravel / api / v1 / mailbox?page=2 " , "prev_page_url" : null , "from" : 1 , "to" : 5 , "data" :[{ "mail_detail_id" : 21 , "mail_detail_uid" : 26 , "mail_detail_sender" : " Jane Austen " , "mail_detail_subject" : " treasure-hunter " , "mail_detail_message" : " The story is about a treasure-hunter and a treasure-hunter who is constantly annoyed by a misguided duke. It takes place on a forest planet in a galaxy-spanning commonwealth. The critical element of the story is a door being opened " , "mail_detail_time_sent" : " 2016-02-29 07:20:27 " , "mail_detail_read" : 0 , "mail_detail_archive" : 0 , "created_at" : " 2017-01-06 16:19:46 " , "updated_at" : " 2017-01-06 16:19:46 " } ..... ]}}
طلب جيسون
{ "limit" : " 5 " }
عنوان URL: http://laravel/api/v1/mailbox/listarchive
استجابة جيسون
{ "error" : false , "message" : " Archived messages fetch successfully " , "mails" :{ "total" : 2 , "per_page" : 5 , "current_page" : 1 , "last_page" : 1 , "next_page_url" : null , "prev_page_url" : null , "from" : 1 , "to" : 2 , "data" :[{ "mail_detail_id" : 15 , "mail_detail_uid" : 26 , "mail_detail_sender" : " Jane Austen " , "mail_detail_subject" : " treasure-hunter " , "mail_detail_message" : " The story is about a treasure-hunter and a treasure-hunter who is constantly annoyed by a misguided duke. It takes place on a forest planet in a galaxy-spanning commonwealth. The critical element of the story is a door being opened " , "mail_detail_time_sent" : " 2017-01-06 21:27:12 " , "mail_detail_read" : 1 , "mail_detail_archive" : 1 , "created_at" : " 2017-01-06 08:46:25 " , "updated_at" : " 2017-01-06 08:46:25 " } ... ]}}
طلب جيسون
{ "id" : " 10 " }
عنوان URL: http://laravel/api/v1/mailbox/show
استجابة جيسون
{ "error" : false , "message" : " Fetched message details successfully " , "mail" :[{ "mail_detail_id" : 10 , "mail_detail_uid" : 21 , "mail_detail_sender" : " Ernest Hemingway " , "mail_detail_subject" : " animals " , "mail_detail_message" : " This is a tale about nihilism. The story is about a combative nuclear engineer who hates animals. It starts in a ghost town on a world of forbidden magic. The story begins with a legal dispute and ends with a holiday celebration. " , "mail_detail_time_sent" : " 2017-01-06 21:42:23 " , "mail_detail_read" : 1 , "mail_detail_archive" : 1 , "created_at" : " 2017-01-06 08:46:25 " , "updated_at" : " 2017-01-06 16:12:23 " }]}
طلب جيسون
{ "id" : " 1 " }
عنوان URL: http://laravel/api/v1/mailbox/read
استجابة جيسون
{ "error" : false , "message" : " Mail read updated successfully " }
طلب جيسون
{ "id" : " 10 " }
عنوان URL: http://laravel/api/v1/mailbox/makearchive
استجابة جيسون
{ "error" : false , "message" : " Mail arcived updated successfully " }
بجانب واجهة برمجة التطبيقات (API)، يرجى أيضًا تقديم وثائق قصيرة حول كيفية استخدامها وكيفية عمل نقاط النهاية. من أجل البساطة، نستخدم فقط رأس تفويض HTTP بسيط.
مزيد من التفاصيل في /الاختبارات/ المجلد.
================================================================================================== ========================================================================================
لقد خلقت في ليلة :). لذلك من المؤكد أن هناك مجالًا للكثير من التحسينات في إصدار الإنتاج. قليل منها أدناه:
طريقة مصادقة رمز API المستندة إلى Passport / Oauth2 لاستدعاء REST APIs [https://laravel.com/docs/5.3/passport]
مزيد من التحقق من طريقة pvt قبل حفظ البيانات أو تحديثها. على سبيل المثال. قبل التحديث إلى الأرشيف، عليك التحقق مما إذا كان قد تم تحديثه بالفعل كأرشيف أم لا
جعل التطبيق بأكمله كحزمة/وحدة نمطية من laravel
تم إنشاء واجهة أمامية كاملة للعميل الإلكتروني مع قوائم مختلفة في علامة التبويب اليسرى وإجراءات التفاصيل في علامة التبويب اليمنى.
استدعاء API تلقائيًا بواسطة ajax على سبيل المثال. أثناء فتح البريد، سيتم الاتصال به وتحديثه للقراءة
================================================================================================== ================================================================================================== ==========
بعض لقطات الشاشة من الاختبار بواسطة عميل الراحة: