nikxphreaker/yii2-hiring-backend

v1.3 2021-01-27 05:52 UTC

This package is auto-updated.

Last update: 2024-09-29 05:56:18 UTC


README

Yii 2 RESTful API


++++++++++++++++++++++++++++++++++ Yii2 RESTful API ++++++++++++++++++++++++++++++++++ 该API使用了Yii-api-template的模板。这是一个基于Yii2的REST API模板。该模板采用Yii2-Micro方法,因此它将轻量级且易于部署。

安装

安装composer

使用git安装

git clone https://github.com/nikophreaker/yii2-hiring-backend.git [app-name]

到目录[app-name]

composer install

设置数据库

config/db.php设置数据库配置。

<?php
return [
    'components' => [
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=localhost;dbname=your_db_name',
            'username' => 'root',
            'password' => '',
            'charset' => 'utf8',
        ],
    ],
];

创建新数据库


导入数据库hiring-backend.sql


运行API

yii serve

目录结构

由于该模板使用MicroFramework方法,目录结构可能略异于Yii2。

  config/             contains application configurations
  controllers/        contains Web controller classes
  models/             contains model classes
  modules/            contains your rest-api versioning (based on modules)
  vendor/             contains dependent 3rd-party packages
  web/                contains the entry script and Web resources

使用Postman进行测试

下载Postman

认证场景

此模板已包含基本端点,您可以使用它开始您的REST-API。例如

此模板使用模块作为版本化模式。每个API版本都保存在一个模块中。此模板已包含v1模块,这意味着如果消费者想使用v1 API,则可以访问https://:8080/v1/endpoint

API场景

创建用户






登录用户

不要忘记保存您的令牌






设置令牌

将授权类型更改为Bearer Token,并将令牌放入令牌字段






创建会话

输入键和值,如图像所示






编辑会话

在现有数据会话的参数上设置id,并通过`x-www-form-urlencoded`编辑它






删除会话

在现有数据会话的参数上设置id






查看会话详情

如果您使用v1端点,则需要令牌






列出会话

如果您使用v1端点,则需要令牌






支持的认证

此模板支持最常用的3种认证。(实际上不是我做这件事,Yii2已经支持所有这些:D)。

  1. HTTP基本认证:访问令牌作为用户名发送。这应该在访问令牌可以安全存储在API消费者端时使用。例如,API消费者是在服务器上运行的程序。
  2. 查询参数:访问令牌作为API URL中的查询参数发送,例如,https://example.com/users?access-token=xxxxxxxx。由于大多数Web服务器会将查询参数保留在服务器日志中,因此此方法应主要用于处理无法使用HTTP头发送访问令牌的JSONP请求。
  3. OAuth 2:消费者从授权服务器获取访问令牌,并通过HTTP Bearer Tokens发送到API服务器,根据OAuth2协议。

访问令牌管理

本应用通过Cookie管理令牌,而不存储到表格或数据库中的数据。访问令牌的过期时间基于$tokenExpiration值。默认令牌过期时间以秒为单位。

public $tokenExpiration = 60 * 24 * 365; // in seconds

这些Cookie将存储在您的计算机上


如果您想删除所有这些,可以使用如下退出端点


API版本控制

此模板根据模块应用提供版本控制场景。在Yii2中,模块是自包含的软件单元,由模型、视图、控制器和其他支持组件组成。此模板已包含v1模块,这意味着所有API v1端点都在此模块中创建。当您发布一个新版本的API(破坏向后兼容性/BBC)时,您可以创建一个新的模块。有关创建模块的更多信息,请访问此Yii2创建模块指南

屏幕截图测试