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 파일이 제공됩니다. 이 메시지를 message_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 옆에 API 사용 방법과 엔드포인트 작동 방식에 대한 간단한 문서도 제공하세요. 단순화를 위해 간단한 HTTP Authorization 헤더를 사용합니다.
자세한 내용은 /tests/ 폴더에 있습니다.
================================================= ================================================
나는 밤에 만들었습니다 :). 따라서 프로덕션 버전에는 확실히 많은 개선의 여지가 있습니다. 아래에는 몇 가지가 있습니다:
REST API 호출을 위한 Passport/Oauth2 기반 API 토큰 인증 방법 [https://laravel.com/docs/5.3/passport]
데이터를 저장하거나 업데이트하기 전에 pvt 방법을 더 많이 확인하세요. 예. 아카이브로 업데이트하기 전에 이미 아카이브로 업데이트되었는지 확인해야 합니다.
전체 애플리케이션을 laravel 패키지/모듈로 만들었습니다.
왼쪽 탭의 다양한 메뉴와 오른쪽 탭의 세부 작업과 함께 전체 이메일 클라이언트 프런트 엔드를 만들었습니다.
예를 들어 ajax로 자동으로 API를 호출합니다. 메일을 여는 동안 호출하고 읽은 상태로 업데이트합니다.
================================================= ================================================= ==========
나머지 클라이언트가 테스트한 스크린샷은 거의 없습니다.