不孬

less is more


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

yii-apidoc的使用

发表于 2019-01-03 | 分类于 yii | 阅读次数:

前言

我们可以通过 yii-apidoc 来通过反射拿取备注的方式生成类的说明文档,也可以根据md文件转换成说明文档,这里主要运用的是md来转换成使用文档,和 hexo 的原理一样

安装apidoc

文档说明

1
composer require yiisoft/yii2-apidoc

安装的时候可能会进行报错

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
...
...
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Conclusion: don't install yiisoft/yii2-apidoc 2.1.1
- Conclusion: remove cebe/markdown 1.1.2
- Installation request for yiisoft/yii2-apidoc ^2.1 -> satisfiable by yiisof
t/yii2-apidoc[2.1.0, 2.1.1].
- Conclusion: don't install cebe/markdown 1.1.2
- yiisoft/yii2-apidoc 2.1.0 requires cebe/markdown-latex ~1.0 -> satisfiable
by cebe/markdown-latex[1.0.0, 1.1.0, 1.1.1, 1.1.2, 1.1.3, 1.1.4].
...
...

阅读全文 »

好用的api文档(包)

发表于 2019-01-03 | 更新于 2019-04-11 | 分类于 yii | 阅读次数:

前言

上次已经介绍过了 yii-apidoc 扩展,但是根据备注生成接口文档感觉还不是我们真正需要的。也稍微查了一下 apidoc 是可以生成接口文档的,但是看到要装这装那也就没倒腾。之前看到过一个及其好用的生成接口文档并提供接口测试的项目,做成一个包供大家使用。
这个因为用到Yii框架,所以依赖于Yii,你也可以根据自己的框架改动部分代码

使用说明

packagist地址

安装

1
composer require ibunao/yii2-apidoc

配置

配置到模块数组

假设我们要放到 backend 项目下

1
2
3
4
5
6
7
8
9
10
11
12
13
'modules' => [
...
...
'document' => [
'class' => 'ibunao\apidoc\Module',
# 配置访问接口的host 通常配置 frontend 项目的域名
'debugHost' => 'http://api.yiidoc.com',
# 和配置时定义的模块名一致
'moduleName' => 'document',
],
...
...
],

注意:如果访问的是其他域名,会存在跨域问题,需要在指向项目中添加header头,如 header("Access-Control-Allow-Origin: *"); 允许所有

阅读全文 »

ip访问速率控制

发表于 2018-12-26 | 分类于 yii | 阅读次数:

前言

Yii 的 restful 实现了用户访问速率的控制(RateLimiter),但是是基于 user 组件的,也就是说用户需要先登录。这里仿照 RateLimiter 写了一个基于 Ip 的控制访问速率的,需要用到 cache 组件用来进行存储每个ip访问的次数和时间。

配置和扩展

把过滤器注册进控制器中

1
2
3
4
5
6
7
8
9
10
public function behaviors()
{
return [
'ipRateLimiter' => [
'class' => IpRateLimiter::className(),
# 开启过滤
'enabled' => true
],
];
}

扩展的话需要先看一下下面给出的代码。需要更改的有三个方法

1
2
3
getRateLimit($request, $action)
loadAllowance($request, $action)
saveAllowance($request, $action, $allowance, $timestamp)

这三个方法的作用下面代码中的备注已经很清楚了,也给了一个简单的 dome。
三个方法都包含了 $request, $action 两个参数,可以通过这两个对每个 action 的访问进行更精细的控制

阅读全文 »

爬虫参考项目

发表于 2018-12-25 | 更新于 2018-12-26 | 分类于 python , 参考项目 | 阅读次数:
简单的爬虫框架可以看一下理解一下基出的爬虫框架逻辑项目地址 简单的分布式爬虫框架基与上个简单的爬虫框架扩展成分布式的项目地址 scrapy基本使用初学scrapy时写的一个参考用的项目,scrapy的一些基本用法可供参考项目地址 斗鱼自动发送弹幕测试一下selenium的使用项目地址 参考项目 微盘下载这个是自己写的,下载微盘电子书的项目地址
阅读全文 »

爬虫-scrapy

发表于 2018-12-20 | 更新于 2018-12-24 | 分类于 python , 爬虫 , Requests模块 | 阅读次数:
requests 模块比较方便的一个发送请求的模块中文文档 请求get请求第一种方式,直接输入url1234567891011import requests r = request.get('http://www.baidu.com?key=word&next=2') print(r.content)``` 第二种方式,通过参数,自动进行拼接 ```pythonimport requestspayload = {'key':'word', 'next':2}r = requests.get('http://www.baidu.com', params = ...
阅读全文 »

Yii-数据库

发表于 2018-12-13 | 分类于 yii , 操作数据库 | 阅读次数:

前言

Yii 包含了一个建立在 PHP PDO 之上的数据访问层 (DAO)。DAO为不同的数据库提供了一套统一的API。通过配置可以分析出用的是哪种数据库,然后使用对应的 Schema 来处理sql。各类之间的分工也比较明确 yii\db\Connection 用来连接数据库、创建事务, yii\db\Command 用来执行sql, yii\db\QueryBuilder 用来创建sql。
安全性也比较高,通过pdo预处理sql然后绑定参数,这就防止了sql注入的问题。

顺便说一下 AR 模式,因为继承 Model 所以同样拥有好用的字段验证,这在更新或者写入的时候非常好用,但是不好的地方是 AR 模型通过属性联表的操作,让操作变得不那么清晰。所以查询一般也就不推荐了。

db->createCommand() 执行sql时放注入写法

  1. 列名 [[field]] 将会被处理成 field;
  2. 表名 将会处理成 配置的表前缀+tablename 注意:这里省略了%,因为hexo的原因,不然会报错
  3. :name 将会被替换成传递的对应的参数,仅供参考,因为是通过pdo预处理执行的(这也是为什么会有防注入功能)
    1
    2
    3
    4
    5
    6
    7
    # 列名 [[field]] 将会被处理成 `field`;
    # 表名 {{%tablename}} 将会处理成 配置的表前缀+tablename
    # :name 将会被替换成传递的对应的参数,仅供参考,因为是通过pdo预处理执行的(这也是为什么会有防注入功能)
    $command = Yii::$app->db->createCommand('select [[ding]], [[pupu]] from {{%bunao}} where name = :name', [':name' => 'xxx']);
    # 获取sql语句
    # select `ding`, `pupu` from `meet_bunao` where name = 'xxx'
    echo $command->getRawSql();
阅读全文 »
123…8
echo-ding

echo-ding

纸上得来终觉浅,绝知此事要躬行。

44 日志
26 分类
54 标签
GitHub E-Mail 微博 知乎
Links
  • bunao
© 2019 echo-ding
由 Hexo 强力驱动 v3.3.7