Mailbox-REST-API mit Laravel. Dies ist ein kleiner E-Mail-Client zur Verwaltung interner Nachrichten. Mir wurde ein einfacher Prototyp für eine grundlegende Mailbox-API zur Verfügung gestellt, in der die bereitgestellten Nachrichten aufgelistet sind. Jede Nachricht kann als gelesen markiert werden und Sie können einzelne Nachrichten archivieren.
PHP 7.0, MySQL 5.6, Apache 2.4 in Ubuntu 16.04 Laravel 5.2
=============================================== =========== =============================================== ===========
Dies ist das vollständige Laravel-Entwicklungsframework. Wo die gesamte REST-API implementiert wurde. Sie können die Konfiguration der Datenbankverbindungen ändern. Ändern Sie außerdem die Route gemäß Ihrem Dokumentstammverzeichnis für den Anwendungsordner. z.B. http://laravel/ [virtueller Host]
Git klonen oder laden Sie den gesamten Ordner in Ihr Dokumentenstammverzeichnis oder auf den virtuellen Host herunter. Und führen Sie dann die folgenden Befehle vom Terminal aus: ###php artisan make:migration mail_details###
REST-Client zum Testen der API verwendet.
Nachrichten aus einer JSON-Datei importieren Um die Datenbank mit einigen Beispielnachrichten zu füllen, steht eine JSON-Datei zur Verfügung, die in die Datenbank importiert werden muss. Bitte schreiben Sie eine Aufgabe, die diese Nachrichten in die Datenbank „messages_sample.json“ importieren kann
Geteilt im Ordner /helpdocuments/
Nachrichten-API Die Hauptaufgabe besteht darin, eine API für die Nachrichten zu erstellen. Es sollte eine REST-basierte API mit JSON-formatierten Nutzdaten sein. Die API sollte die folgenden Anwendungsfälle unterstützen.
JSON-Anfrage
URL: http://laravel/api/v1/mailbox/savemessages
JSON-Anfrage
{ "limit" : " 6 " }
URL: http://laravel/api/v1/mailbox
JSON-Antwort
{ "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-Anfrage
{ "limit" : " 5 " }
URL: http://laravel/api/v1/mailbox/listarchive
JSON-Antwort
{ "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-Anfrage
{ "id" : " 10 " }
URL: http://laravel/api/v1/mailbox/show
JSON-Antwort
{ "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-Anfrage
{ "id" : " 1 " }
URL: http://laravel/api/v1/mailbox/read
JSON-Antwort
{ "error" : false , "message" : " Mail read updated successfully " }
JSON-Anfrage
{ "id" : " 10 " }
URL: http://laravel/api/v1/mailbox/makearchive
JSON-Antwort
{ "error" : false , "message" : " Mail arcived updated successfully " }
Bitte stellen Sie neben der API auch eine kurze Dokumentation zur Verwendung und zur Funktionsweise der Endpunkte bereit. Der Einfachheit halber verwenden wir einfach einen einfachen HTTP-Autorisierungsheader.
Weitere Details im Ordner /tests/.
=============================================== =============================================
Ich habe es innerhalb einer Nacht erstellt :). Es gibt also definitiv Raum für viele Verbesserungen in der Produktionsversion. Nachfolgend finden Sie einige davon:
Passport/Oauth2-basierte API-Token-Authentifizierungsmethode zum Aufrufen von REST-APIs [https://laravel.com/docs/5.3/passport]
Weitere Überprüfung der pvt-Methode vor dem Speichern oder Aktualisieren von Daten. z.B. Bevor Sie auf ein Archiv aktualisieren, müssen Sie prüfen, ob es bereits als Archiv aktualisiert wurde oder nicht
Die gesamte Anwendung wurde als Laravel-Paket/-Modul erstellt
Komplettes EMIAL-Client-Frontend mit verschiedenen Menüs im linken Tab und Detailaktionen im rechten Tab erstellt.
Rufen Sie die API automatisch per Ajax auf, z. Beim Öffnen der E-Mail wird sie beim Lesen aufgerufen und aktualisiert
=============================================== =============================================== ==========
Einige Screenshots vom Testen durch den Rest-Client: