开发部署
注意:本章节可以跳过,充分熟练使用
yiapi
开发后再看。
请严格按照顺序操作,尤其是数据库同步操作。
每次更新依赖,一定要记得及时同步系统表结构!!!
开发流程
- 在
tables
目录中设计好数据库表结构。 - 在
config
目录下的配置文件中配置好正式环境的mysql
和redis
等参数。 - 在
apis
目录中开发接口功能。 - 执行
pnpm run build
运行接口。
可以看到,使用 yiapi
开发接口功能,关键步骤只有 1
个,那就是 开发接口
!
再次提醒!!!
使用 yiapi
进行后端接口开发,只需要关注 1
个事情。
像其他项目一样,先设计好表结构。
然后,直接写接口。其他的一切,都不用管,yiapi
已经全部搞定!
接口开发也非常简单。
ps:目前看不懂不要紧,后面章节会详解
接口开发
javascript
// 工具函数
import { fnRoute, fnSchema } from '@yicode/yiapi/fn.js';
// 配置文件
import { httpConfig } from '@yicode/yiapi/config/http.js';
import { schemaHelperConfig } from '@yicode/yiapi/config/schemaHelper.js';
// 数据库表
import { tableData } from '../../tables/example.js';
// 接口元数据
import { metaConfig } from './_meta.js';
export default async (fastify) => {
// 当前文件的路径,fastify 实例
fnRoute(import.meta.url, fastify, metaConfig, {
// 请求参数约束
schemaRequest: {
type: 'object',
properties: {
nickname: fnSchema(tableData.nickname),
age: fnSchema(tableData.age)
},
required: ['title']
},
// 执行函数
apiHandler: async (req, res) => {
const trx = await fastify.mysql.transaction();
try {
const newsModel = trx('news');
const result = await newsModel //
.clone()
.insertData({
title: req.body.title,
thumbnail: req.body.thumbnail,
content: req.body.content
});
throw new Error('123');
await trx.commit();
return {
...httpConfig.INSERT_SUCCESS,
data: result
};
} catch (err) {
await trx.rollback();
fastify.log.error(err);
return httpConfig.INSERT_FAIL;
}
}
});
};
部署
yiapi
使用 pm2
进行正式环境的部署和管理
ps:
pm2
的知识要你自己去学习了解,本教程只有yiapi
使用教程。
全局安装 pm2
bash
npm install -g pm2
正式环境运行
bash
npm run build
反向代理
、https
、静态文件托管
等
推荐使用 caddy
,简单、方便、高效,自动配置域名的 https
。
配置文件 Caddyfile
写法参考:
bash
# 静态资源托管
https://yicode.tech, https://www.yicode.tech {
root * /wwwroot/yicode.tech/site
file_server
}
# 接口反向代理
https://api.yicode.tech {
reverse_proxy /* http://127.0.0.1:3000 {
header_up Host {http.reverse_proxy.upstream.hostport}
header_down Access-Control-Allow-Headers *
header_down Access-Control-Allow-Origin *
}
}
总结
使用 yiapi
开发后端接口就是这么简单,全部围绕着 开发业务接口
来进行。
真正做到了简单易用,方便快捷!