首页
学习
活动
专区
圈层
工具
发布

使用 strapi 快速构建 API 和 CMS 管理系统

修改 strapi 管理界面为中文 接下来我们进行项目代码的配置,将界面设置为中文,使用自己熟悉的开发工具打开工程,这里我使用 VSCode,项目的结构如下图所示: 这里我使用了文件折叠的插件,才让下面那些配置文件显示成层级结构的...快速开发一套 CRUD 接口 创建模型 这里我就拿项目当中最常用的用户管理来说,首先我们需要一个用户表,点击 模型构建器,可以看到已经有一个 User 的集合类型,这个是 strapi 自己提供的,我们当前登录的用户的数据就存储在这个模型当中...创建完模型之后,点击添加一个字段,选择 文本,设置名称为 username,选择 较短的文本,高级设置当中的类型选择 必须和 唯一的,其他的我们暂时用不到,实际中可以根据需要选择。...2、编码 已经明白了我们需要开发的接口之后,下面直接进入编码阶段,在 user-profile 的 routes 下面新增一个 register.ts 文件,方便将用户的请求映射到我们自己的 controller...,当中的 user-profile.ts 当中的 index 方法: // register.ts export default { routes: [ { method: 'POST

15.2K44

GraphQL 实践与服务搭建

如getBlogAndAuthor,这样直接为调用方“定制”一个接口,请求一条就得到就调用方想要的数据。...可以参阅 BFF——服务于前端的后端 但这些接口一般来说都比较重,里面有很多当前页面并不需要的字段,那还有没有一种请求:客户端只需要发送一次请求就能获取所需要的字段 有,也就是接下来要说的 GraphQL...信息 但是想要一条请求就能得到客户端想要的数据字段,那么服务端必然要做比较多的任务(想想也是,后端啥都不干,前端就啥都能获取,怎么可能嘛)。...避免了返回结果中不必要的数据字段。...因为它不像传统的 restful 请求,需要专门配置 GraphQL 服务,而整个过程是需要花费一定的工作量(定义 Schema,Mutations 等等),前面也提到想要一条请求就能得到客户端想要的数据字段

6.3K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Strapi 实现用户注册与登录

    此外这里有个在线示例可供体验:Vitesse Nuxt 3 Strapi 创建 Strapi 项目​ 这里省略创建 strapi 项目创建过程,具体可到 Quick Start Guide 中查看。...另一个 Pubilc 则是未授权用户,默认权限如下 权限分配​ 双击角色可以到权限分配页面,比方说我想给 Authenticated 角色分配 Restaurant 表中查询数据,就可以按照如下选项中勾选...一开始登录面板创建的用户在 设置 => 管理员权限 => 用户列表 中可以看到,而通过api http://localhost:1337/api/auth/local/register 注册的用户则是在...更多可到 Roles & Permissions 中查看 通过 HTTP 这种方案可以说是最通用的了,不过有些框架还提供相应的模块来调用 Strapi。...不过 Strapi 官方有提供 sdk的方案来调用 strapi 服务,而不用发送 http 请求的形式来调用,具体可以到官方提供的 sdk 查看如何使用,这里不做演示。

    4.6K30

    MassCMS VS Strapi比较

    Strapi是一个开源的无头CMS Strapi 是一个无头 CMS,用于开发网站、移动应用程序、电子商务网站和 API。它允许在不了解后端或数据库的情况下创建 API。...系统根据内容模型自动构建 API,使用 Strapi 示例可以轻松查看 CMS 中的数据。...灵活性和可定制性 Strapi 提供了一个灵活的框架,允许开发人员根据不同项目的需求进行定制和扩展。它支持自定义数据结构、字段类型和关系,并且允许开发人员使用自己喜欢的编程语言进行扩展。...不能同时满足多个项目的管理,一个企业想同时建立多个项目,需要部署多套环境。 无法做到所见即所得,它只提供API,并不提供页面预览。 创建和更新内容模型缓慢,需要重启服务。...HTTP POST(或GET,PUT,DELETE)的URL,一个实现了 Webhook 的 API 提供商就是在当事件发生的时候会向这个配置好的 URL 发送一条信息,与请求-响应式不同,使用 Webhook

    1.7K31

    不会写后端不用愁,“Strapi”解你忧

    今天就跟大家分享一个利器——“Strapi”:不会写后端不用愁,“Strapi”解你忧。 Strapi简介 Strapi是一个开源的Headless CMS(无头内容管理系统)。...Strapi 提供了一个强大的后端 API,支持 RESTful 和 GraphQL 两种方式,使得开发者可以方便地将内容分发到任何设备或服务,无论是网站、移动应用。 Strapi使用 1....启动工程 在终端中输入如下命令: cd strapi-demo # 开发启动 npm run develop 3.创建用户 启动后会自动打开http://localhost:1337/admin/auth...5.添加表 5.1 创建表 5.2 定义字段 5.3 等待重启 5.4 添加数据 6....查询 6.1 配置权限 可配置public的权限或生成一个token 6.1 curl请求示例如下: // 登录 curl --location 'http://localhost:1337/admin

    94610

    nextjs从零到一开发博客(万字长文)配合strapi

    框架选择 SEO友好的前端框架-NextJS CMS管理后台-Strapi(Open source Node.js Headless CMS) 最近很火的UI集合-shadcn-ui 家喻户晓的CSS框架...由于strapi可以用草稿发布模式,我们文章就使用这个模式,你点击创建实体的时候会有让你选择的,默认是选择上的。...新增完之后会重启服务,帮我们创建好实体 我们继续创建标签实体,定义这个实体跟我们的文章是多对多关系,下面我们先创建标签实体,这个我们不需要用发布模式,然后只需要一个短文本的name字段。...我们现在去打开公共访问 再次看一下我们的接口请求 到这里strapi搭建的cms管理后台已经接近完成,我们可以整合前端项目去做我们的前端展示了。...,上面我们说到我们在nextjs中需要引入shadcn/ui,这个是最近势头很猛的一个组件集合。

    1.1K10

    利用水墨映客图床作为COS服务器

    目录 利用水墨映客作为COS服务器 利用picGo配合typora上传图片 安装PicGo(以Windows为例) 安装lankong插件 在SpringBoot中开发图片上传工具类 设置图片上传请求的参数...设置图片的参数 读取图片内容并写入请求 获取响应 利用水墨映客作为COS服务器 文章类网站项目的图片存储都是一个很重要的问题,一般都是使用云服务厂商的COS对象存储服务(参考前文:使用腾讯云对象存储搭建图床...安装lankong插件 这是一个为 兰空图床适配开发的 PicGo 图片上传插件。同样适用于水墨映客图床 在picGo的插件设置中搜索lankong,然后安装。...在SpringBoot中开发图片上传工具类 该工具类的方法有两个参数一个是文件名(fileName),另一个是文件的输入流。...//从解析出的JSON对象中,通过路径rootNode.path("data")定位到"data"节点,再从该节点下获取"url"字段的值,即图片上传后的URL JsonNode userNode

    79910

    if 我是前端Leader,怎么走出小微前端团队的围墙?

    配图 张云龙介绍了一个适合小微项目的业务中台解决方案,它举的例子是 `Strapi`[5]: 这是一个Headless CMS, 翻译为中文就是'无头'内容管理系统,和传统 CMS 的最大区别是 Headless...通过它, 你可以实现: 可视化、快速的业务模型创建。类似创建数据库模型(数据库无关),可以灵活地配置各种字段类型(除了原始类型、还支持邮箱、文件上传)以及模型关系。 暴露规范的接口。...外层相比内层更加多变和冗杂,Strapi 中台层隔离了 UI 和 核心服务,它让核心服务可以下沉,专注于实现更加通用的服务;通过 Strapi 可以快速搭建非核心的外围衍生业务模式,暴露标准化的接口范式.../post/5dd20202e51d453ff47f9c81#heading-2 [4] 《漫画:什么是中台?》...: https://juejin.im/post/5d995f82f265da5ba308389d#comment [5] Strapi: https://strapi.io [6] 《Serverless

    1.3K20

    谷歌云端硬盘 文件:复制

    创建文件的副本,并使用补丁程序语义应用所有请求的更新。 立即尝试。...请求 HTTP请求 POST https://www.googleapis.com/drive/v3/files/ fileId / copy 参量 参数名称值描述路径参数fileIdstring文件的...可选查询参数fieldsstring您想要包含在响应中的字段的路径。如果未指定,则响应包括此方法专用的默认字段集。对于开发,您可以使用特殊值*返回所有字段,但是仅选择所需的字段即可获得更高的性能。...可写的parents[]list包含文件的父文件夹的ID。 如果未在创建请求中指定,则文件将直接放置在用户的“我的云端硬盘”文件夹中。...如果未将其指定为复制请求的一部分,则文件将继承源文件的所有可发现父级。更新请求必须使用addParents和removeParents参数来修改父级列表。

    2.5K20

    使用 GraphQL 和 Ballerina 操作多个数据源

    这个示例演示了如何使用 Ballerina 实现 GraphQL 服务器,将 MySQL 数据库中的数据以及通过另一个 API 调用获取的数据公开出来。...在 Ballerina 中,记录是特定类型字段的集合。其中有命名的键,并定义了字段的类型。{|和|}分隔符表示这个记录类型只包含所描述的字段。...它还有另一个叫作“volumeInfo”的对象,这个对象包含了与书籍评论相关的信息,字段名分别为“averageRating”和“ratingsCount”。...记录的字段被映射到 GraphQL 对象的字段,记录字段的类型被映射到 GraphQL 对应字段的类型。...服务类型中的每一个资源方法表示 GraphQL 对象的一个字段,资源方法可以有输入参数,这些输入参数被映射到相应字段的参数。

    3.6K20

    Asp.Net Web API(三)

    第二个方法:WebDAV方法,(基于Web的分布式著作与版本控制的HTTP方法,是一个扩展的HTTP方法,MKCOL时隶属于WebDAV的一个方法,它在URI指定的位置创建集合) 通过Action名称路由...Route Dictionary(路由字段)      如果这个框架发现了一个匹配的URI,它会创建包含每个占位符值的字典。这个键值是不带{}的占位符名称。这个值取自于URI路径或是默认值。...这个字段被存在IHttpRouteData对象中。...如果以上都不是,那么这个方法将只支持Post请求。 Parameter Bindings     参数绑定是指Web API如何创建参数值。...在这种背景下,Action选择算法如下 创建该控制器中与HTTP请求方法匹配的所有Action的列表 如果路由字典有Action条目,移除与该条目值不匹配的Action 试图将Action参数与该URI

    2.4K50

    elasticsearch了解及使用

    节点有以下类型: a、主节点:主节点不接受客户端的请求,他主要控制Elasticsearch集群,负责集群中的操作,比如创建/删除一个索引,跟踪哪些节点是群集的一部分,并决定哪些分片分配给相关的节点。...(Index):一个索引就是一个拥有相似特征的文档的集合。...通常,会为具有一组共同字段的文档定义一个类型。比如说,我们假设你运营一个博客平台并且将你所有的数据存储到一个索引中。在这个索引中,你可以为用户数据定义一个类型,为博客数据定义另一个类型。...为此目的,Elasticsearch允许你创建分片的一份或多份拷贝,这些拷贝叫做复制分片,或者直接叫复制。复制之所以重要,主要有两方面的原因: 在分片/节点失败的情况下,提供了高可用性。...注意:相同索引,但是类型不同,而名字相同的字段的数据类型必须一致,即拥有相同的映。

    99730

    MyBatis-2. Mapper XML文件

    和 result 都将一个列的值映射到一个简单数据类型(字符串,整型,双精度浮点数,日期等)的属性或字段。...Id 和 Result 的属性 属性 描述 property 映射到列结果的字段或属性。如果用来匹配的 JavaBeans 存在给定名字的属性,那么它将会被使用。...association的属性描述 属性 描述 property 映射到列结果的字段或属性。如果用来匹配的 JavaBeans 存在给定名字的属性,那么它将会被使用。...notNullColumn 默认情况下,子对象仅在至少一个列映射到其属性非空时才创建。 通过对这个属性指定非空的列将改变默认行为,这样做之后Mybatis将仅在这些列非空时才创建一个子对象。...--在 Post 类型的 ArrayList 中的 posts 的集合。

    3.2K30

    Restful API详解

    @RequestMapping:这个注解会将 HTTP 请求映射到 MVC 和 REST 控制器的处理方法上。...@PostMapping:这个注解是@RequestMapping的变体,可以接收Post的请求方式,在RestFul在处理创建资源的请求。...Restful API的测试用例 在我们实际开发中,需要对我们的接口进行测试,确保我们后端接口的可用,这时我们在不启动整个项目的情况下,可以利用到spring的测试框架辅助我们的开发。...由于在Restful API中,有时候需要把参数直接放在URL中,那么我们该如何映射到我们的参数上呢?...e.printStackTrace(); } } @JsonView的使用 在某一些请求返回的JSON中,我们并不希望返回某些字段,而在另一些请求中需要返回某些字段。

    2.7K30

    nodejs入门

    (请求事件第一个形参) 3.8.3.1.req.url() //请求路径 3.8.3.2..headers 请求头 (对象) 3.8.3.3.req.method 请求方式""GET""||""POST...()方法返回 5.mongodb 5.1.介绍 5.1.1.MongoDB是一个跨平台,面向文档的数据库,高性能,高可用性和易于扩展 5.1.2.mongo中的数据库:是一个集合的物理容器,一个单一的MongoDB...:值}) 插入一条 db.集合名.insertMany([{},{}]) 插入多条数据 5.3.6.db.集合.find() //查找集合中的所有数据 db.集合.find({条件对象}) //查找符合条件的数据...$gt 大于 $lt 小于 $e 等于 $ne不等于 5.3.7.db,集合.updata({条件对象},{值对象}) 更新替换符合条件的一条数据 db.集合.updata({条件对象},{$set:{...值对象}}) 更新符合条件的一条数据 db.集合.updata({条件对象},{$set:{值对象}},{multi:true}) 更新符合条件的多条数据 5.3.8.db.集合.remove({条件对象

    1.7K40

    浅谈同源策略

    预检请求会发生在以下几种情况中: 非 GET 和 POST 方法的请求; 在 POST 请求中 Content-Type 字段不是 application/x-www-form-urlencoded,multipart...除了这些请求,还有一些请求被称为简单请求,简单请求不会触发 CORS 的预检请求: 请求方法为下列方法之一: GET HEAD POST HTTP 首部字段仅限下面这个集合: Accept Accept-Language...,只保留关键的几条字段): 如果需要向服务器发送下面这个 POST 请求,该请求会发送一个 XML 文档,同时包含了一个自定义的请求首部字段。...因为该请求的 Content-Type 为 application/xml,也包含自定义的请求首部字段,所以在真正发送该 POST 请求之前,会先发起一个预检请求。...每个浏览器都会有自己的最大有效时间,设置该限制的目的是为了避免一些安全问题。

    1.6K10

    API设计最佳实践

    资源可以是一个单一的数据,例如,上面例子中的作者简介。 集合是指一个资源的集合,在我们的例子中,它可以是一个作者所写的书的列表。...API 目的可以是以下之一: 创建数据 Create 读取数据 Read 更新数据 Update 删除数据 Delete CRUD!猜对了!...GET请求可以包含查询参数,以过滤从API接收的结果。 POST 向 API 提交一条记录,该记录将在数据库中创建一个资源。 PUT 一般用于更新服务器上的现有资源。...大版本升级(Major):是那些肯定会破坏现有客户端应用的版本,比如在请求参数中添加一个新的必需参数,或改变返回结果中的字段。 可以通过多种方式来对 API 进行版本控制。...对于第一次API调用,page_token = "1" page_size 定义了返回结果中应该返回多少条记录。例如page_size = 100,在API调用中最多返回100条记录。

    1.1K20

    一文详解 API 设计最佳实践

    资源可以是一个单一的数据,例如,上面例子中的作者简介。 集合是指一个资源的集合,在我们的例子中,它可以是一个作者所写的书的列表。...API 目的可以是以下之一: 创建数据 Create 读取数据 Read 更新数据 Update 删除数据 Delete CRUD!猜对了!...GET请求可以包含查询参数,以过滤从API接收的结果。 POST 向 API 提交一条记录,该记录将在数据库中创建一个资源。 PUT 一般用于更新服务器上的现有资源。...大版本升级(Major):是那些肯定会破坏现有客户端应用的版本,比如在请求参数中添加一个新的必需参数,或改变返回结果中的字段。 可以通过多种方式来对 API 进行版本控制。...对于第一次API调用,page_token = "1" page_size 定义了返回结果中应该返回多少条记录。例如page_size = 100,在API调用中最多返回100条记录。

    1.1K20

    RESTful API的十个最佳实践1. 使用名词而不是动词 2. Get方法和查询参数不应该改变资源状态3. 使用名词的复数形式 4. 为关系使用子资源 5. 使用HTTP头决定序列化格式 6. 使

    为集合提供过滤、排序、字段选择以及分页 过滤 为所有字段或者查询语句提供独立的查询参数: GET /cars?...sort=-manufactorer,+model 字段选择 一些情况下,我们只需要在列表中查询几个有标识意义的字段,我们不需要从服务端把所有字段的值都请求出来,所以需要支持API选择查询字段的能力,这也可以提到网络传输性能和速度...20条数据: GET /cars?...404 – 未找到,指定的资源不存在 422 – 不可指定的请求体 – 只有服务器不能处理实体时使用,比如图像不能被格式化,或者重要字段丢失。...500 – Internal Server Error – 标准服务端错误,API开发人员应该尽量避开这种错误 使用 error payloads 所有的异常都应该被映射到error payloads中

    3.2K50

    【简创AIGC】创建剪映草稿

    CREATE_DRAFT API 接口文档接口信息POST /openapi/capcut-mate/v1/create_draft功能描述创建剪映草稿。...该接口用于创建一个新的剪映草稿项目,可以自定义视频的宽度和高度。创建成功后会返回草稿URL和帮助文档URL,为后续的视频编辑操作提供基础。...draft_id=2025092811473036584258", "tip_url": "https://help.assets.jcaigc.cn/draft-usage"}响应字段说明字段名类型说明...400height必须大于等于1高度参数无效提供大于等于1的高度值400参数类型错误参数类型不正确确保width和height为数字类型500草稿创建失败内部服务错误联系技术支持503服务不可用系统维护中稍后重试注意事项参数验证...具有一定的有效期工作流程接收并验证请求参数创建草稿基础结构设置画布尺寸生成草稿URL返回草稿信息和帮助文档链接下一步操作创建草稿后,您可以使用以下接口继续编辑:add_videos: 添加视频素材add_audios

    43810
    领券