Contents

使用strapi搭建api接口

由于小组项目需要搭建api接口,实现数据库的查询功能,在网上搜索了一下准备使用比较容易上手的strapi(gin不好意思你看起来有点难)来搭建,先在本机上调试最后部署到服务器。

1.安装nodejs和yarn

manjora

1
2
3
4
5
# 安装yarn
yay -S yarn
# 使用淘宝镜像源
yarn config set registry https://registry.npm.taobao.org/
yarn create strapi-app my-project --quickstart

ubuntu

1
2
3
4
5
6
7
8
# nodejs
curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash -
sudo apt-get install -y nodejs

# yarn
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update && sudo apt install yarn

2.创建项目

由于需要批量导入文件,所以需要安装插件
根据 https://github.com/strapi/strapi-tutorials/tree/master/tutorials/import-content-plugin-tutorial
教程来下载并安装

首先用 https://minhaskamal.github.io/DownGit/ 来下载这个github目录到服务器上,解压

1
2
3
4
cd import-content-plugin-tutorial
yarn install
yarn build
yarn develop --watch-admin

访问 http://localhost:1337/admin 即可在网页上进行编辑

注意使用的默认数据库为sqlite,development环境下数据库文件在tmp/目录下,使用admin看板只能添加表,删除表需要删除api/目录下的同名文件夹

3.导入数据并创建api接口

在面板上进行操作

  1. 创建content-type,跟创建表格类似,制定字段以及类型
  2. 使用在线网站https://json-csv.com/将json转换成csv(值得注意的是它会将列表进行拆分)
  3. 使用插件导入数据,导入到指定的content-type中,注意字段的对应
  4. 设置数据的public权限
    选择侧栏的Roles & Permissions, 选择public的数据权限,我只开放了数据的部分权限(count为计数,find为返回所有,findone为返回单个)

之后再访问http://localhost:1337/quizzes
就可以看到请求的数据了

其它的功能以及参数说明可以参考如下:

https://strapi.io/documentation/3.0.0-beta.x/content-api/parameters.html

项目需求是随机获取10条数据,但此api没有打乱数据的功能,因此在使用中可以先获取所有题库,再随机选取10个,或者使用javascript生成10个1-52的随机数(数据总数为52),然后获得请求10次获得数据

参考

  1. https://flask-restful.readthedocs.io/en/latest/quickstart.html
  2. https://github.com/strapi/strapi-tutorials/tree/master/tutorials/import-content-plugin-tutorial
  3. https://www.runoob.com/sqlite/sqlite-tutorial.html
  4. https://strapi.io/documentation/3.0.0-beta.x/content-api/parameters.html#filters