elchroy / lemojis
此包的最新版本(dev-analysis-8bQn6j)没有可用的许可信息。
dev-analysis-8bQn6j
2016-04-26 09:18 UTC
Requires
- firebase/php-jwt: ^3.0
- illuminate/database: ^5.2
- mikey179/vfsstream: ^1.6
- slim/slim: ^3.1
Requires (Dev)
- satooshi/php-coveralls: ^1.0
This package is not auto-updated.
Last update: 2024-09-20 18:33:54 UTC
README
一个简单的PHP Naija-Emoji服务。
安装
要运行此包,您必须安装PHP 5.5+和Composer。
首先下载包。
composer require elchroy/lemojis dev-develop
安装Composer。
$ composer install
要使用应用程序,您必须设置一个主机和数据库,以便从中获取emoji。
- 在您应用程序的根目录中创建一个名为
config.ini
的文件。 - 此包使用Laravel的
Illuminate/Database
包。请确保您的配置文件有如下collation
和charset
driver = mysql database = naija host = localhost username = root password = charset = utf8 collation = utf8_unicode_ci prefix =
用法
创建一个 index.php
文件,最好是从您应用程序的根目录开始,然后运行您的服务器。
// index.php // Require the autoload the vendor folder. require_once 'vendor/autoload.php'; // Make a new instance of the application. $app = new Elchroy\Lemojis\LemojisApp(); // Run the application. $app->run();
您可以使用终端中的PHP运行服务器,如下所示
php -S localhost:8000
PHP 7.0.2 Development Server started at Fri Apr 15 11:59:42 2016
Listening on https://:8000
Document root is /Users/user/Code/CP3/Lemojis/public
Press Ctrl-C to quit.
- 为了说明此包的用法,我将使用
curl
来处理HTTP请求。 - 注意,您可以使用Postman或DHC等工具。
主页路由
从终端运行以下 curl
命令。
curl -i -X GET -H 'Content-Type: application/json' https://:8000/
响应
HTTP/1.1 200 OK
Host: localhost:8000
Connection: close
X-Powered-By: PHP/7.0.2
Content-Type: text/html; charset=UTF-8
Content-Length: 49
Welcome to Lemoji - A Simple Naija Emoji Service.
获取所有emoji
curl -i -X GET -H 'Content-Type: application/json' https://:8000/emojis
响应
HTTP/1.1 200 OK
Host: localhost:8000
Connection: close
X-Powered-By: PHP/7.0.2
Content-Type: application/json;charset=utf-8
Content-Length: 378
{"message":"OK","data":[{"id":1,"name":"smile","chars":"s","keywords":"smile","category":"expressions","date_created":"2016-03-12 17:04:18","date_modified":"2016-03-12 17:04:30","created_by":"roy"},{"id":2,"name":"smiley","chars":"sly","keywords":"smilely","category":"expressions","date_created":"2016-02-12 17:04:20","date_modified":"2016-02-12 17:05:18","created_by":"roy"}]}
根据ID获取一个emoji
curl -i -X GET -H 'Content-Type: application/json' https://:8000/emojis/2
响应
HTTP/1.1 200 OK
Host: localhost:8000
Connection: close
X-Powered-By: PHP/7.0.2
Content-Type: application/json;charset=utf-8
Content-Length: 202
{"message":"OK","data":{"id":2,"name":"smiley","chars":"sly","keywords":"smilely","category":"expressions","date_created":"2016-02-12 17:04:20","date_modified":"2016-02-12 17:05:18","created_by":"roy"}}
获取一个不可用的emoji
当emoji未找到或数据库表中没有emoji时,将返回 404
响应。
curl -i -X GET -H 'Content-Type: application/json' https://:8000/emojis/200
响应
HTTP/1.1 404 Not Found
Host: localhost:8000
Connection: close
X-Powered-By: PHP/7.0.2
Content-Type: application/json;charset=utf-8
Content-Length: 47
{"message":"Cannot find the emoji","data":null}
注册用户
要注册和使用此API,您只需要用户名和密码。
curl -i -X POST -H 'Content-Type: application/json' -d '{"username" : "elchroy", "password" : "yorhcle"}' https://:8000/auth/register
响应
HTTP/1.1 201 Created
Host: localhost:8000
Connection: close
X-Powered-By: PHP/7.0.2
Content-Type: application/json;charset=utf-8
Content-Length: 65
{"message":"New user has been created successfully.","data":null}
登录
要登录和使用此API,您需要使用注册时使用的用户名和密码。如果登录信息有效,您将获得一个令牌。
curl -i -X POST -H 'Content-Type: application/json' -d '{"username" : "elchroy", "password" : "yorhcle"}' https://:8000/auth/login
响应
HTTP/1.1 200 OK
Host: localhost:8000
Connection: close
X-Powered-By: PHP/7.0.2
Content-Type: application/json;charset=utf-8
Content-Length: 279
{"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE0NjA3MjIwNjgsImp0aSI6Ik1UUTJNRGN5TWpBMk9BPT0iLCJuYmYiOjE0NjA3MjIwNzgsImV4cCI6MTQ2MDcyNDA3OCwiZGF0YSI6eyJ1c2VybmFtZSI6ImVsY2hyb3kifX0.cNyDaqIITjdFgoS5axWbVOy5lwUJrP9KKN1RZ8H2XP4cQfSofcj1yUDLJRqUCS3GZo16rmn3Fs7uoUdqbd55Nw"}
登录失败
当提供的用户名或密码无效时,登录将失败。
curl -i -X POST -H 'Content-Type: application/json' -d '{"username" : "elchroy", "password" : "incorrectpassword"}' https://:8000/auth/login
响应
HTTP/1.1 404 Not Found
Host: localhost:8000
Connection: close
X-Powered-By: PHP/7.0.2
Content-Type: application/json;charset=utf-8
Content-Length: 56
{"message":"Incorrect username or password","data":null}
只有经过授权的用户(具有令牌的用户)才能访问请求 创建
、更新
或 删除
emoji。
创建emoji
curl -i -X POST -H 'Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE0NjA3MjYzNzIsImp0aSI6Ik1UUTJNRGN5TmpNM01nPT0iLCJuYmYiOjE0NjA3MjYzODIsImV4cCI6MTQ2MDcyODM4MiwiZGF0YSI6eyJ1c2VybmFtZSI6ImVsY2hyb3kifX0.z22I-1QZwolyVKxE7UwoBUx0UmUJ4qd-ueRMPgNA50WhDCUHGYLFa1Kfw7mQss2SUJoGE5LPAKj_Kk6fkKvMdw' -d '{"name" : "Aunty!", "chars" : "o", "keywords" : "raise hands woman girl", "category" : "people"}' https://:8000/emojis
响应
HTTP/1.1 201 OK
Host: localhost:8000
Connection: close
X-Powered-By: PHP/7.0.2
Content-Type: application/json;charset=utf-8
Content-Length: 57
{"message":"The new emoji has been created successfully.","data":null}
更新emoji
这是您想更新emoji所有属性的情况。
curl -i -X PUT -H 'Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE0NjA3MjYzNzIsImp0aSI6Ik1UUTJNRGN5TmpNM01nPT0iLCJuYmYiOjE0NjA3MjYzODIsImV4cCI6MTQ2MDcyODM4MiwiZGF0YSI6eyJ1c2VybmFtZSI6ImVsY2hyb3kifX0.z22I-1QZwolyVKxE7UwoBUx0UmUJ4qd-ueRMPgNA50WhDCUHGYLFa1Kfw7mQss2SUJoGE5LPAKj_Kk6fkKvMdw' -d '{"name" : "Aunties!", "chars" : "Au", "keywords" : "praise pretty women ladies", "category" : "people"}' https://:8000/emojis/2
响应
HTTP/1.1 200 OK
Host: localhost:8000
Connection: close
X-Powered-By: PHP/7.0.2
Content-Type: application/json;charset=utf-8
Content-Length: 57
{"message":"The emoji has been updated successfully.","data":null}
更新emoji(部分)
这是您只想更新emoji某些属性的情况。
curl -i -X PATCH -H 'Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE0NjA3MjYzNzIsImp0aSI6Ik1UUTJNRGN5TmpNM01nPT0iLCJuYmYiOjE0NjA3MjYzODIsImV4cCI6MTQ2MDcyODM4MiwiZGF0YSI6eyJ1c2VybmFtZSI6ImVsY2hyb3kifX0.z22I-1QZwolyVKxE7UwoBUx0UmUJ4qd-ueRMPgNA50WhDCUHGYLFa1Kfw7mQss2SUJoGE5LPAKj_Kk6fkKvMdw' -d '{"name" : "Aunties!", "chars" : "Au"}' https://:8000/emojis/2
响应
HTTP/1.1 200 OK
Host: localhost:8000
Connection: close
X-Powered-By: PHP/7.0.2
Content-Type: application/json;charset=utf-8
Content-Length: 57
{"message":"The emoji has been updated successfully.","data":null}
删除emoji
curl -i -X DELETE -H 'Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE0NjA3MjYzNzIsImp0aSI6Ik1UUTJNRGN5TmpNM01nPT0iLCJuYmYiOjE0NjA3MjYzODIsImV4cCI6MTQ2MDcyODM4MiwiZGF0YSI6eyJ1c2VybmFtZSI6ImVsY2hyb3kifX0.z22I-1QZwolyVKxE7UwoBUx0UmUJ4qd-ueRMPgNA50WhDCUHGYLFa1Kfw7mQss2SUJoGE5LPAKj_Kk6fkKvMdw' https://:8000/emojis/2
响应
HTTP/1.1 200 OK
Host: localhost:8000
Connection: close
X-Powered-By: PHP/7.0.2
Content-Type: application/json;charset=utf-8
Content-Length: 53
{"message":"The emoji has been deleted.","data":null}
更新/删除 - 当emoji找不到时
对于需要创建或删除找不到的emoji的请求,将向用户返回 404
响应。
curl -i -X DELETE -H 'Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE0NjA3MjYzNzIsImp0aSI6Ik1UUTJNRGN5TmpNM01nPT0iLCJuYmYiOjE0NjA3MjYzODIsImV4cCI6MTQ2MDcyODM4MiwiZGF0YSI6eyJ1c2VybmFtZSI6ImVsY2hyb3kifX0.z22I-1QZwolyVKxE7UwoBUx0UmUJ4qd-ueRMPgNA50WhDCUHGYLFa1Kfw7mQss2SUJoGE5LPAKj_Kk6fkKvMdw' https://:8000/emojis/30000
响应
HTTP/1.1 404 Not Found
Host: localhost:8000
Connection: close
X-Powered-By: PHP/7.0.2
Content-Type: application/json;charset=utf-8
Content-Length: 53
{"message":"Cannot find the emoji to update.","data":null}
未经授权访问私有路由
任何对私有路由(创建、删除、更新)的请求,如果没有适当的令牌验证,将向用户返回响应。
对于请求中没有提供令牌的情况。
curl -i -X DELETE -H 'Content-Type: application/json' https://:8000/emojis/2
响应
HTTP/1.1 400 Bad Request
Host: localhost:8000
Connection: close
X-Powered-By: PHP/7.0.2
Content-Type: application/json;charset=utf-8
Content-Length: 80
{"message":"Bad Request - Token not found in request. Please Login","data":null}
对于令牌已过期的头部。
curl -i -X DELETE -H 'Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE0NjA3MjYzNzIsImp0aSI6Ik1UUTJNRGN5TmpNM01nPT0iLCJuYmYiOjE0NjA3MjYzODIsImV4cCI6MTQ2MDcyODM4MiwiZGF0YSI6eyJ1c2VybmFtZSI6ImVsY2hyb3kifX0.z22I-1QZwolyVKxE7UwoBUx0UmUJ4qd-ueRMPgNA50WhDCUHGYLFa1Kfw7mQss2SUJoGE5LPAKj_Kk6fkKvMdw' https://:8000/emojis/2
响应
HTTP/1.1 405 Method Not Allowed
Host: localhost:8000
Connection: close
X-Powered-By: PHP/7.0.2
Content-Type: application/json;charset=utf-8
Content-Length: 80
{"message":"Token is Expired. Please re-login.","data":null}
登出
只有已登录的用户才能登出。
curl -i -X GET -H 'Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE0NjA3MjYzNzIsImp0aSI6Ik1UUTJNRGN5TmpNM01nPT0iLCJuYmYiOjE0NjA3MjYzODIsImV4cCI6MTQ2MDcyODM4MiwiZGF0YSI6eyJ1c2VybmFtZSI6ImVsY2hyb3kifX0.z22I-1QZwolyVKxE7UwoBUx0UmUJ4qd-ueRMPgNA50WhDCUHGYLFa1Kfw7mQss2SUJoGE5LPAKj_Kk6fkKvMdw' https://:8000/auth/logout
响应
HTTP/1.1 200 OK
Host: localhost:8000
Connection: close
X-Powered-By: PHP/7.0.2
Content-Type: application/json;charset=utf-8
Content-Length: 49
{"message":"Successfully Logged Out","data":null}
测试
要测试此包,您可以使用PHPUnit,从命令行(WindowsOS)或终端(MacOS)。
注意:请确保在应用根目录中执行 cd
。
$ phpunit