利器 strapi 一个可以简单、快速、自动生成安全可靠后端 api 的框架【补齐后端短板】

cmlanche · 2020年08月30日 · 最后由 aloveric 回复于 2020年09月18日 · 612 次阅读
本帖已被设为精华帖!

strapi 是什么?

strapi这个名字取自 bootstrap 的后缀 strap,然后因为它是一个提供快速生成安全可靠的 api 架构,然后再加了一个 i,合并就是 strapi,bootstrap 的有启动的意思,你可以用 strapi 来快速构建你的后端,可以快速让自己的项目启动。

几个关键词

  1. 快速 :是因为一个命令就生成了后端用户、权限、文件上传等基本的后端轮子
  2. 简单:strapi 启动后,有一个后端管理页面,你可以在后端新增表,新增完成后,后端自动重启,然后生成与之对应的增删改查的基本 api
  3. 安全:strapi 充分考虑了 api 的安全性,对每个接口都有保护限制,你可以在后端管理页面去做定制化的配置
  4. 插件化:内置了基本够用的插件,如内容管理器、API 文档、媒体库、角色&权限,你也可以按照官方设定,制作自己的插件
  5. 自定义 API:除了官方自动生成的 api,你也可以自己编写定制的 api,内置了丰富的变量,并支持 graphql
  6. 本地部署:strapi 是完全开源的,其实就是一个后端轮子,down 下来后,改改业务就可以发布了,完全由你掌控,而不是一个云端产品。

你可以把 strapi 当做自己开发项目的快速启动的工具,就算没有后端基础,只要会 js,你就可以写出专业级的后端,是前端开发者的福利,更是独立开发者的一把尖刀利器!

自己的探索

安装教程,请自行到官方网站上去看看就知道了,一个命令即可。

从我一个刚开始认识 strapi 的小白状态,作为独立开发者,我对 strapi 有哪些期望,我做了一些探索,相当惊艳。

1、后端管理页面

首先,安装好 strapi 后,会有一个后台管理页面:http://localhost:1337/admin/

image-20200830163600577

我没想到的是 strapi 还提供了后端管理功能,strapi 的定位是 headless content cms,一直以为真的就是无页面的,有这个页面,我们只要关注自己的业务,直接在上面去修改即可,非常方便。

2、内容类型生成器

如图所示,内置了内容类型生成器,这个工具可以让你自己添加数据库的表

image-20200830164122531

数据库支持丰富的字段:

image-20200830164344413

3、自动生成 API

比如安装好 strapi,建了一个 Test 的 Content-Type,通过访问http://localhost:1337/tests就能查看这个这个表的数据

image-20200830164614996

当然不仅仅是获取所有数据,还有增删改等,有 api 文档,在插件市场里安装好即可

4、API 文档

在插件市场安装 Document 插件后,在左侧菜单栏可以看到 api 文档,你可以控制文档是否私有

image-20200830165017341

文档其实是 swagger 做的

image-20200830165111259

5、试试编写自定义 API

我们在命令行中通过命令strapi generate:controller script来自动生成一个叫 Script 的控制器,路径在./api/script/controller

编写如下代码:

'use strict';

/**
 * A set of functions called "actions" for `script`
 */

module.exports = {
  // exampleAction: async (ctx, next) => {
  //   try {
  //     ctx.body = 'ok';
  //   } catch (err) {
  //     ctx.body = err;
  //   }
  // }
  scripts: async (ctx, next) => {
    ctx.send("hello world")
  }
};

定义路由:在目录./api/script/config下,我们新建 routes.json

{
  "routes": [
    {
      "method": "GET",
      "path": "/scripts",
      "handler": "Script.scripts"
    }
  ]
}

这样我们就拥有接口/scripts接口啦

image-20200830165612633

我们只要专注我们的业务,写出我们自己的 api 即可,是不是非常快非常爽呢?!

当然有能力的,一般会自己有自己的一套轮子,但对那些全栈能力比较差的,有了 strapi 完全就是福音,补齐了后端短板,作为独立开发者来说是非常幸福的一件事!

cmlanche 将本帖设为了精华贴 08月30日 09:03

研究了一天,好东西。新项目试试~~

系统功能不错,配置环境有些小复杂

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册