API REST de buzón con Laravel. Este es un pequeño cliente de correo electrónico para gestionar la mensajería interna. Me proporcionaron un prototipo simple para una API de buzón de correo básica en la que se enumeran los mensajes proporcionados. Cada mensaje se puede marcar como leído y puede archivar mensajes individuales.
PHP 7.0, mysql 5.6, apache 2.4 en Ubuntu 16.04 Laravel 5.2
==================================================== ============ ==================================================== ============
Este es el marco de desarrollo completo de Laravel. Donde se ha implementado toda la API REST. Puede cambiar la configuración de las conexiones de la base de datos. También cambie la ruta según la raíz del documento para la carpeta de la aplicación. p.ej. http://laravel/ [anfitrión virtual]
Git clone o descargue la carpeta completa en la raíz de su documento o en el host virtual. Y luego ejecute los siguientes comandos desde la terminal: ###php craft make:migration mail_details###
Cliente REST usado para probar API.
Importar mensajes desde un archivo JSON Para inicializar la base de datos con algunos mensajes de ejemplo, se proporciona un archivo JSON que debe importarse a la base de datos. Escriba una tarea que pueda importar estos mensajes a la base de datos message_sample.json
Compartido en la carpeta /helpdocuments/
API de mensajes La tarea principal es crear una API para los mensajes. Debería ser una API basada en REST con cargas útiles formateadas en JSON. La API debe admitir los siguientes casos de uso.
Solicitud JSON
URL: http://laravel/api/v1/mailbox/savemessages
Solicitud JSON
{ "limit" : " 6 " }
URL: http://laravel/api/v1/buzón de correo
Respuesta 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 " } ..... ]}}
Solicitud JSON
{ "limit" : " 5 " }
URL: http://laravel/api/v1/mailbox/listarchive
Respuesta 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 " } ... ]}}
Solicitud JSON
{ "id" : " 10 " }
URL: http://laravel/api/v1/mailbox/show
Respuesta 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 " }]}
Solicitud JSON
{ "id" : " 1 " }
URL: http://laravel/api/v1/mailbox/read
Respuesta JSON
{ "error" : false , "message" : " Mail read updated successfully " }
Solicitud JSON
{ "id" : " 10 " }
URL: http://laravel/api/v1/mailbox/makearchive
Respuesta JSON
{ "error" : false , "message" : " Mail arcived updated successfully " }
Además de la API, proporcione también una breve documentación sobre cómo utilizarla y cómo funcionan los puntos finales. Para simplificar, simplemente utilizamos un encabezado de autorización HTTP simple.
Más detalles en la carpeta /tests/.
==================================================== =================================================
Lo he creado en una noche :). Definitivamente tenemos espacio para muchas mejoras en la versión de producción. Algunos están a continuación:
Método de autenticación de token API basado en Passport/Oauth2 para llamar a API REST [https://laravel.com/docs/5.3/passport]
Más verificación del método pvt antes de guardar o actualizar datos. p.ej. antes de actualizar al archivo, es necesario verificar si ya está actualizado como archivo o no
Hice toda la aplicación como paquete/módulo laravel
Se creó una interfaz de cliente de correo electrónico completa junto con diferentes menús en la pestaña izquierda y acciones detalladas en la pestaña derecha.
Llamar automáticamente a la API mediante ajax, por ejemplo. mientras abre el correo, llamará y se actualizará como leído
==================================================== ==================================================== ==========
Algunas capturas de pantalla de las pruebas realizadas por el cliente de descanso: