caicedo1089 / web-rest-api
Web API Rest是一个微框架,展示如何创建和使用REST API。
1.0.0
2018-03-07 02:50 UTC
Requires
- ecoal95/php-router: ^1.0
- illuminate/database: ^5.5
- vlucas/phpdotenv: ^2.4
This package is not auto-updated.
Last update: 2024-09-20 02:07:10 UTC
README
Web API Rest是一个微框架,展示如何创建和使用REST API。此外,它还包含一个简单的认证系统,允许用户认证。它基于Eloquent进行模型管理,使用PHP Router进行路由管理,以及PHP Dotenv进行配置管理。
目录结构非常简单,如下所示
- app/ 存储API和Web,以及一个core文件夹,其中存储API模型和控制器的基类。
- config/ 存储所有主要配置。
- public/ 存储所有公开文件,在本例中是使用ExtJS 4.2.1实现的Front End。
演示
安装
- 克隆项目。
- 进入项目目录并执行以下命令 composer
composer install
- 项目中有users.sql文件,将其导入您的数据库中,仅测试过MySQL数据库。
- 在.env文件中添加您的数据库连接信息。
- 最后,我们将启动一个http服务器来测试项目,为此请执行以下命令
php -S localhost:8000
在浏览器中打开localhost:8000,我们可以访问项目。在/api中可以访问API,在/web中可以访问Web。
API访问点
此项目只有这两个端点
###AUTH
处理认证。
- POST /api/auth/login
//JSON Request
{
"login": "correo@dominio.com",
"password": "123456"
}
//JSON Response - 200
{
"data": {
"id": 29,
"full_name": "Pedro Caicedo",
"username": "pcaicedo",
"email": "info@pcaicedo.com",
"remember_token": null,
"created_at": "-0001-11-30 00:00:00",
"updated_at": "-0001-11-30 00:00:00",
"deleted_at": null
}
}
- POST /api/auth/register
//JSON Request
{
"full_name": "Pedro Caicedo",
"username": "caicedo1089",
"email": "correo@dominio.com",
"password": "123456"
}
//JSON Response - 200
{
"data": {
"id": 31
}
}
- GET /api/auth/logout
//JSON Request - No aplica
//JSON Response - 200
{
"data": {
"id": 29
}
}
###USERS
系统用户的CRUD。
- GET /api/users/
//JSON Request
?filter=<Filtra por nombre, username o correo>
//JSON Response - 200
{
"data": [
{
"id": 28,
"full_name": "José Caicedo",
"username": "caicer",
"email": "caicer",
"remember_token": null,
"created_at": "2018-03-05 06:01:48",
"updated_at": "-0001-11-30 00:00:00",
"deleted_at": null
}
]
}
- POST /api/users/
//JSON Request
{
"full_name": "Pedro Caicedo",
"username": "caicedo1089",
"email": "correo@dominio.com",
"password": "123456"
}
//JSON Response - 200
{
"data": {
"id": 31
}
}
- PUT /api/users/<id_user> 所有请求参数都是可选的,也就是说,如果我们只想更新名称,我们只需在JSON中发送full_name参数。
//JSON Request
{
"full_name": "Otro Nombre",
"username": "caicedo1089_CO",
"email": "correo@dominio.com.co",
"password": "1234567"
}
//JSON Response - 200
{
"data": {
"id": 31
}
}
- DELETE /api/users/<id_user>
//JSON Request - No aplica
//JSON Response - 200
{
"data": {
"id": 31
}
}
