กล่องจดหมาย REST API พร้อม Laravel นี่เป็นไคลเอนต์อีเมลขนาดเล็กสำหรับจัดการข้อความภายใน ฉันได้รับต้นแบบอย่างง่ายสำหรับ API กล่องจดหมายพื้นฐานซึ่งมีรายการข้อความที่ให้ไว้ แต่ละข้อความสามารถทำเครื่องหมายว่าอ่านแล้วและคุณสามารถเก็บถาวรข้อความเดียวได้
PHP 7.0, mysql 5.6, apache 2.4 ใน Ubuntu 16.04 Laravel 5.2
- -
นี่คือกรอบการพัฒนา Laravel เต็มรูปแบบ โดยที่ REST API ทั้งหมดได้ถูกนำไปใช้งาน คุณสามารถเปลี่ยนการกำหนดค่าการเชื่อมต่อฐานข้อมูลได้ เปลี่ยนเส้นทางตามรูทเอกสารของคุณสำหรับโฟลเดอร์แอปพลิเคชัน เช่น http://laravel/ [โฮสต์เสมือน]
Git clone หรือดาวน์โหลดทั้งโฟลเดอร์ลงในรูทเอกสารของคุณหรือในโฮสต์เสมือน จากนั้นรันคำสั่งต่อไปนี้จากเทอร์มินัล: ###php artisan make:migration mail_details###
ใช้ไคลเอ็นต์ REST เพื่อทดสอบ API
นำเข้าข้อความจากไฟล์ JSON หากต้องการเริ่มต้นฐานข้อมูลด้วยข้อความตัวอย่าง จะมีไฟล์ JSON ที่ให้ไว้ซึ่งจำเป็นต้องนำเข้าไปยังฐานข้อมูล โปรดเขียนงานที่สามารถนำเข้าข้อความนี้ลงใน datab Messages_sample.json
แชร์บน /helpdocuments/ โฟลเดอร์
Message API ภารกิจหลักคือการสร้าง API สำหรับข้อความ ควรเป็น API ที่ใช้ REST พร้อมด้วยเพย์โหลดที่จัดรูปแบบ JSON API ควรรองรับกรณีการใช้งานต่อไปนี้
คำขอ JSON
URL: http://laravel/api/v1/mailbox/savemessages
คำขอ JSON
{ "limit" : " 6 " }
URL: http://laravel/api/v1/mailbox
การตอบสนองของ JSON
{ "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 " } ..... ]}}
คำขอ JSON
{ "limit" : " 5 " }
URL: http://laravel/api/v1/mailbox/listarchive
การตอบสนองของ JSON
{ "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 " } ... ]}}
คำขอ JSON
{ "id" : " 10 " }
URL: http://laravel/api/v1/mailbox/show
การตอบสนองของ JSON
{ "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 " }]}
คำขอ JSON
{ "id" : " 1 " }
URL: http://laravel/api/v1/mailbox/read
การตอบสนองของ JSON
{ "error" : false , "message" : " Mail read updated successfully " }
คำขอ JSON
{ "id" : " 10 " }
URL: http://laravel/api/v1/mailbox/makearchive
การตอบสนองของ JSON
{ "error" : false , "message" : " Mail arcived updated successfully " }
นอกจาก API แล้ว โปรดจัดเตรียมเอกสารสั้นๆ เกี่ยวกับวิธีใช้งานและวิธีการทำงานของอุปกรณ์ปลายทางด้วย เพื่อความง่าย เราเพียงใช้ส่วนหัว HTTP Authorization แบบธรรมดา
รายละเอียดเพิ่มเติมใน /tests/ โฟลเดอร์
-
ฉันได้สร้างภายในหนึ่งคืน :) แน่นอนว่ายังมีพื้นที่สำหรับการปรับปรุงมากมายในเวอร์ชันที่ใช้งานจริง บางส่วนอยู่ด้านล่าง:
วิธีการตรวจสอบโทเค็น API ที่ใช้ Passport / Oauth2 สำหรับการเรียก REST APIs [https://laravel.com/docs/5.3/passport]
ตรวจสอบวิธีการ pvt เพิ่มเติมก่อนที่จะบันทึกหรืออัปเดตข้อมูล เช่น ก่อนที่จะอัปเดตเป็นไฟล์เก็บถาวรจำเป็นต้องตรวจสอบว่ามีการอัปเดตเป็นไฟล์เก็บถาวรแล้วหรือไม่
สร้างแอปพลิเคชันทั้งหมดเป็นแพ็คเกจ / โมดูล laravel
สร้างส่วนหน้าของไคลเอ็นต์ emial ทั้งหมดพร้อมกับเมนูต่างๆ ในแท็บด้านซ้ายและการดำเนินการรายละเอียดในแท็บด้านขวา
เรียก API โดยอัตโนมัติโดย ajax เช่น ขณะที่เปิดเมลมันจะโทรและอัปเดตว่าอ่านแล้ว
-
ภาพหน้าจอบางส่วนจากการทดสอบโดยไคลเอนต์ที่เหลือ: