API REST de boîte aux lettres avec Laravel. Il s'agit d'un petit client de messagerie permettant de gérer la messagerie interne. On m'a fourni un prototype simple pour une API de boîte aux lettres de base dans laquelle les messages fournis sont répertoriés. Chaque message peut être marqué comme lu et vous pouvez archiver des messages individuels.
PHP 7.0, MySQL 5.6, Apache 2.4 dans Ubuntu 16.04 Laravel 5.2
=================================================== =========== =================================================== ===========
Il s'agit d'un framework de développement Laravel complet. Où toutes les API REST ont été implémentées. Vous pouvez modifier la configuration des connexions à la base de données. Modifiez également l'itinéraire selon la racine de votre document pour le dossier d'application. par exemple. http://laravel/ [hôte virtuel]
Git clonez ou téléchargez l'intégralité du dossier à la racine de votre document ou sur un hôte virtuel. Et puis exécutez les commandes suivantes depuis le terminal : ###php artisan make:migration mail_details###
Utilisation du client REST pour tester l'API.
Importer des messages à partir d'un fichier JSON Pour amorcer la base de données avec quelques exemples de messages, un fichier JSON est fourni qui doit être importé dans la base de données. Veuillez écrire une tâche qui peut importer ces messages dans la base de données messages_sample.json
Partagé sur le dossier /helpdocuments/
API de message La tâche principale est de créer une API pour les messages. Il doit s'agir d'une API basée sur REST avec des charges utiles au format JSON. L'API doit prendre en charge les cas d'utilisation suivants.
Requête JSON
URL : http://laravel/api/v1/mailbox/savemessages
Requête JSON
{ "limit" : " 6 " }
URL : http://laravel/api/v1/mailbox
Réponse 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 " } ..... ]}}
Requête JSON
{ "limit" : " 5 " }
URL : http://laravel/api/v1/mailbox/listarchive
Réponse 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 " } ... ]}}
Requête JSON
{ "id" : " 10 " }
URL : http://laravel/api/v1/mailbox/show
Réponse 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 " }]}
Requête JSON
{ "id" : " 1 " }
URL : http://laravel/api/v1/mailbox/read
Réponse JSON
{ "error" : false , "message" : " Mail read updated successfully " }
Requête JSON
{ "id" : " 10 " }
URL : http://laravel/api/v1/mailbox/makearchive
Réponse JSON
{ "error" : false , "message" : " Mail arcived updated successfully " }
Outre l'API, veuillez également fournir une brève documentation expliquant comment l'utiliser et comment fonctionnent les points de terminaison. Pour plus de simplicité, nous utilisons simplement un simple en-tête d'autorisation HTTP.
Plus de détails dans le dossier /tests/.
=================================================== =================================================
J'ai créé en une nuit :). Il y a donc certainement de la place pour de nombreuses améliorations dans la version de production. Quelques-uns sont ci-dessous :
Méthode d'authentification par jeton API basée sur Passport/Oauth2 pour appeler les API REST [https://laravel.com/docs/5.3/passport]
Plus de vérification de la méthode pvt avant d'enregistrer ou de mettre à jour les données. par exemple. avant de mettre à jour vers l'archive, vous devez vérifier si elle est déjà mise à jour en tant qu'archive ou non
Création de l'intégralité de l'application sous forme de package/module Laravel
Création d'un frontal client emial total avec différents menus dans l'onglet de gauche et action détaillée dans l'onglet de droite.
Appelez automatiquement l'API par ajax, par exemple. lors de l'ouverture du courrier, il appellera et sera mis à jour comme lu
=================================================== =================================================== ==========
Quelques captures d'écran des tests effectués par le client rest :