Laravel を使用したメールボックス REST API。これは、内部メッセージを管理するための小さな電子メール クライアントです。提供されたメッセージがリストされている基本的なメールボックス API の単純なプロトタイプが提供されました。各メッセージを既読としてマークしたり、単一のメッセージをアーカイブしたりできます。
Ubuntu 16.04 Laravel 5.2 の PHP 7.0、mysql 5.6、apache 2.4
================================================= =========== ================================================= ===========
これは完全な Laravel 開発フレームワークです。すべての REST API が実装されている場所。データベース接続構成を変更できます。また、アプリケーション フォルダーのドキュメント ルートに従ってルートを変更します。例えば。 http://laravel/ [仮想ホスト]
Git クローンを作成するか、フォルダー全体をドキュメント ルートまたは仮想ホストにダウンロードします。そして、ターミナルから次のコマンドを実行します: ###php Artisan make:migration mail_details###
REST クライアントを使用して API をテストしました。
JSON ファイルからメッセージをインポートする いくつかのメッセージ例をデータベースにシードするには、提供されている JSON ファイルをデータベースにインポートする必要があります。このメッセージをデータタブmessages_sample.jsonにインポートできるタスクを作成してください。
/helpdocuments/ フォルダーで共有
メッセージ API 主なタスクは、メッセージ用の API を構築することです。これは、JSON 形式のペイロードを備えた REST ベースの API である必要があります。 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/ フォルダーを参照してください。
================================================= ===============================================
一晩以内に作成しました:)。したがって、製品版には多くの改善の余地があることは間違いありません。以下にいくつかあります。
REST APIを呼び出すためのPassport / Oauth2ベースのAPIトークン認証方法 [https://laravel.com/docs/5.3/passport]
データを保存または更新する前に pvt メソッドをさらに確認します。例えば。アーカイブに更新する前に、すでにアーカイブとして更新されているかどうかを確認する必要があります
アプリケーション全体をlaravelパッケージ/モジュールとして作成
左側のタブにさまざまなメニューが表示され、右側のタブに詳細アクションが表示されるように、合計のエミール クライアント フロントエンドが作成されました。
ajax により API を自動的に呼び出します。メールを開いている間に呼び出しが行われ、既読として更新されます
================================================= ================================================= ==========
残りのクライアントによるテストのいくつかのスクリーン ショット: