From ea1ef94fa1effe3340c2007dc2fe51b751ac3da5 Mon Sep 17 00:00:00 2001 From: MarkusJoe Date: Sat, 9 Apr 2022 10:36:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0API=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + app/api/__init__.py | 6 ++ app/api/errors.py | 6 ++ app/api/views.py | 6 ++ app/static/127.0.0.1-key.pem | 28 -------- docs/README.md | 128 ++++++++++++++++++++++++++++++++--- 6 files changed, 138 insertions(+), 37 deletions(-) create mode 100644 app/api/__init__.py create mode 100644 app/api/errors.py create mode 100644 app/api/views.py delete mode 100644 app/static/127.0.0.1-key.pem diff --git a/README.md b/README.md index a30a2ac..a83951c 100644 --- a/README.md +++ b/README.md @@ -59,3 +59,4 @@ $ python3 app.py # 一些信息 - 使用了Python3.6 的标准库`Sqlite3`进行数据库操作 +- 你可以在`api`获取原始数据, 文档地址: [文档](https://markusjoe.github.io/RequestCounter/#/api) diff --git a/app/api/__init__.py b/app/api/__init__.py new file mode 100644 index 0000000..739a3f0 --- /dev/null +++ b/app/api/__init__.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python3 +# -- coding:utf-8 -- +# @Author: markushammered@gmail.com +# @Development Tool: PyCharm +# @Create Time: 2022/4/9 +# @File Name: __init__.py.py \ No newline at end of file diff --git a/app/api/errors.py b/app/api/errors.py new file mode 100644 index 0000000..6041600 --- /dev/null +++ b/app/api/errors.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python3 +# -- coding:utf-8 -- +# @Author: markushammered@gmail.com +# @Development Tool: PyCharm +# @Create Time: 2022/4/9 +# @File Name: errors.py \ No newline at end of file diff --git a/app/api/views.py b/app/api/views.py new file mode 100644 index 0000000..f8b7dbf --- /dev/null +++ b/app/api/views.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python3 +# -- coding:utf-8 -- +# @Author: markushammered@gmail.com +# @Development Tool: PyCharm +# @Create Time: 2022/4/9 +# @File Name: views.py \ No newline at end of file diff --git a/app/static/127.0.0.1-key.pem b/app/static/127.0.0.1-key.pem deleted file mode 100644 index 2d5ffb5..0000000 --- a/app/static/127.0.0.1-key.pem +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDG8Xg9jeccwQAz -EH0uR2FiVrvK6ZExXTI3KUEqHgZEkB2OgUOd7BahVXKfwh8JSg8+XgtYUVVWgA+K -t68J0umj85ZumyQzRM1CQCsLU2BDe/mcI0rBOWmekJIgjsjPOvrTcoME6p13z2WO -19V1R7hNBgQOde3NSzYF+dvWDk6j0ZyE2oz9ZVNpukLnZYbPkPpkCz7Ahi+L09vj -qtQGip7V51sNHbsyZCBRUtYrJW0OMAcTrylMGHmZdunAA1V8qVI37jrdE+QMfTu/ -QmjFo1vcsyJUce9BeLUK6QOtfaMhR97tk5vaANvA1V7mM9/N+ShLyw8S5mee1lpH -iE+0/KX7AgMBAAECggEBAKCx4acO3VS7jPayZfsgy0fMuWoA2jfeiLZHy4xCrltp -cYZvYXfJgMoWpDzpZ3pwaPm+qzlOkTkKvgMVtfygcfrtwmBbTpVfCNFv1ZUTZtl7 -5ba6RyLmxiq/qllEHG5PvNVZVP1+qW1iiC0mqBRQt0z4BATOOyStkNio52rzKZBm -TafwAVc7Re1H9e4RHuedb3K7JrTblY4o5e55SQGMHmYzMkBtZHC54s4EsphT64d0 -1+0NWGK60tNP+1mV686EClf3Sgvyou/vBs4YokmC9Wka4Qg8nqJerpu0+qzoIWsp -C5jMnbM6JewVerNC/wI/cmkDsBkcCOeMewwtqLzrI4kCgYEA0nLDNNFTNPO2eW3X -iWyzLkqAJsBNysT+Q0LM97/mWm3ftTtX0NzBP2StMde++pRKpaD9Faunc+nx6sPA -BgNFTizSzWdvA62pBrtxJ/FEpGa4+OyPnBgt/dzasTWBcLy3VaxCiHXGnGc/4S2T -wmmLwY3HGVW/NmN5ZANL4olqMecCgYEA8gEyMTP5fSGnBKlmsqwYaJSJpA8pdBVr -xV0kpElJTHTntEVh+zsPqlAIZMMZIYLV+y7XXU1G4RE3Tu9pm/KUe3PK3ZqRZdll -W+epEw1IbtqRcFky80FKhHL0ngai9S2aF9fvjoFsPZud4esQ1FvZ3Qbr7L18cycO -H6d2EjuB0M0CgYEAtmBkUTKStFH8sfECGANOqPBBbNO81tuvKeULMi1o2LddZnbe -HJAjHOgHvCknRYsbwbvpeE1BGhAE6ZnooI1XE29+5CkeKQbnc4EfiCjrfrnS1U5V -CkZeHSG3mFkxKt0w2JsnMZE3pLVJw8A2zAWh6wQOJiOMSPsd6RF+Qv0pPcMCgYEA -5YrA4u6bjFbpJoDPilW16SxKybQf652N1Wwdnz5sKfsQ82qEH1nL6A11iK2NHr4M -3O13FWaA/mXoAhUQJP0YXWhdWYiMtQBZJa08L3f/5jWmkdvpedXKKosm/uTomImi -iU8mSBL2ahE61diy49ojcYRpLuokKs02lkuusGiFH1kCgYBrmSx4O104/BxBbu9E -mpxSriXfpC4yDUke+IVgKQZXgEGjKJuEu/4ZdES+xRvCQmPYJqml2AC8eoD1yNgt -I1cH6i9njIYdl+m7SEIZfNXjfIXqn/bkWNIdNx80zZ6lg9tJABpZ9PBMw/K5DPE9 -o9/jJ9Ty8iIjIv5v5v8VxwEi4w== ------END PRIVATE KEY----- diff --git a/docs/README.md b/docs/README.md index 0662b0d..ace2f82 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,16 +1,22 @@ # 这里是Request Counter的文档 + > 虽然说项目很小根本不需要文档 # 灵感来源 + [Moe-Counter](https://github.com/journey-ad/Moe-counter) > 看到这个项目感觉挺有意思就用Python写了一个 此项目中添加了原项目中没有的功能 `Length` `设置长度` # 工作原理 + 使用Flask建立服务器接收请求分析获取到的数据写入数据库 # 部署 + > 在部署之前你需要先安装`python3.10.x`以上的版本 + ## 部署到本地服务器 + ```shell $ git clone https://github.com/MarkusJoe/RequestCounter.git $ cd RequestCounter @@ -18,29 +24,133 @@ $ python3 app.py ``` - # 基本信息 + - Python版本: `3.10.x` - 请求方法: `GET` `POST` - 请求地址: `/count/` or `/api/v1/` - 你需要在 请求地址末尾加入你需要使用的名称来进行计数 - 可选参数: `theme` `length` +# API -## 获取主题数据库文件 -* 此接口没有在本项目中, 该仓库为私人仓库暂不开源 -* 访问 `http://resource-base.herokuapp.com/` or `https://filebase.vercel.app/download/data.db` 获取数据库文件 -* 由于速度较慢建议使用多线程进行下载 -* 项目中自动下载主题数据库的文件也是来自此处 +> 地址前缀: `/api/` +- 接口地址: `/overall/`, `/query/`, `/theme/` +- 请求方法: `GET` `POST` +## `/overall/` 接口 + +> 使用此接口获取数据库中所有的数据 +> 必选参数: `limit: int` > 自定义查询数量, 输入的数字大于等于最大值时, 将返回最大值 + +### 调用示例 + +```shell +$ curl -X GET https://requestcounter.herokuapp.com/api/overall?limit=20 +``` + +```json +{ + "code": 200, + "msg": "Success. Total: 7 row(s)", + "data": [ + { + "name": "sda", + "times": 72 + }, + { + "name": "main", + "times": 59 + } + ] +} +``` + +## `/query/` 接口 + +> 使用此接口获取数据库中指定的数据 + +***使用此接口查询的名称计数数值会加一*** + +> 必选参数: `name: str` > 查询指定名称的计数数据 +> 可选参数: `nochange: Any` +> `nochange`: 'Any` > 将参数值设置为任意值则仅查询不增加 + +### 调用示例 + +```shell +$ curl -X GET https://requestcounter.herokuapp.com/api/query?name=main&nochange=1 +``` + +```json +{ + "code": 200, + "msg": "Success", + "data": [ + "main", + 59 + ] +} +``` + +## `/theme/` 接口 + +> 使用此接口获取数据库内原始的base64编码的主题图片 +> 必选参数: `theme: str` + +### 调用示例 + +```shell +$ curl -X GET https://requestcounter.herokuapp.com/api/theme?name=lewd +``` + +```json + +{ + "code": 200, + "msg": "Success", + "data": [ + { + "index": "0", + "base64": "...", + "width": 45, + "height": 100 + }, + ... + ] +} +``` + +## `/alltables/` 接口 + +> 此接口可以获取数据库内所有的表名 > 返回的数据中不包含`ReqCount` +> 无参数 + +```shell +$ curl -X GET https://requestcounter.herokuapp.com/api/alltables +``` + +```json +{ + "code": 200, + "msg": "Success", + "data": [ + ... + ] +} +``` # 关于 + ## 开源 + - 本项目以Apache-2.0许可开源, 即: - - 你可以直接使用该项目提供的功能, 无需任何授权 - - 你可以在**注明来源版权信息**的情况下对源代码进行任意分发和修改以及衍生 + - 你可以直接使用该项目提供的功能, 无需任何授权 + - 你可以在**注明来源版权信息**的情况下对源代码进行任意分发和修改以及衍生 ## 关于此页面 -此文档由 [docsify](https://github.com/docsifyjs/docsify) 生成. docsify 是一个动态生成文档网站的工具。不同于 GitBook、Hexo 的地方是它不会生成将 .md 转成 .html 文件,所有转换工作都是在运行时进行。 + +此文档由 [docsify](https://github.com/docsifyjs/docsify) 生成. docsify 是一个动态生成文档网站的工具。不同于 GitBook、Hexo 的地方是它不会生成将 .md 转成 .html +文件,所有转换工作都是在运行时进行。