MassCMS With APIJSON最佳实践

简介: APIJSON是一种基于JSON格式的API接口开发框架。它的目标是简化后端开发人员编写和维护接口的工作,同时提供灵活、高效、安全的接口访问方式。APIJSON通过解析请求的JSON参数,动态生成SQL语句,并自动执行数据库操作,将结果以JSON形式返回给客户端。

1.APIJSON是什么?

APIJSON是一种基于JSON格式的API接口开发框架。它的目标是简化后端开发人员编写和维护接口的工作,同时提供灵活、高效、安全的接口访问方式。APIJSON通过解析请求的JSON参数,动态生成SQL语句,并自动执行数据库操作,将结果以JSON形式返回给客户端。它支持多种复杂查询和操作,如分页、条件查询、关联查询、嵌套查询等。APIJSON还提供了权限控制、数据过滤、数据校验等功能,保护数据安全和一致性。通过APIJSON,开发人员可以快速构建稳定、高效的API接口,提升开发效率和代码质量。

APIJSON是一个开源的接口开发框架(https://github.com/Tencent/APIJSON),它基于Java语言开发,旨在简化后端接口的开发和维护工作。该框架通过将数据库表结构映射为接口的形式,实现了前后端分离以及接口自动化的目标。能大幅降低开发和沟通成本,简化开发流程,缩短开发周期。

2.APIJSON的主要特点和优势

  1. 简单易用:APIJSON使用JSON格式进行接口请求和响应,易于理解和使用。开发人员只需编写简单的JSON参数,即可自动生成对应的SQL语句并执行数据库操作,大大简化了后端接口开发工作。开发者只需要在接口文档中定义好接口,APIJSON就能自动生成对应的接口实现,大大减少了开发的工作量和时间。
  2. 高效灵活:APIJSON支持多种复杂查询和操作,如分页、条件查询、关联查询、嵌套查询等,能满足各种业务需求。它能自动优化SQL语句,提高查询效率,减少数据库负载。APIJSON支持灵活的数据查询和筛选,可以根据业务需求自由组合查询条件,实现复杂的数据过滤和排序。
  3. 数据库无关性:APIJSON支持多种数据库类型,包括MySQL、Oracle、SQL Server等,开发人员可以根据项目需求选择适合的数据库类型。
  4. 安全可靠:APIJSON提供权限控制和数据过滤功能,可以对接口进行访问权限控制,保护数据安全。同时,APIJSON提供数据校验功能,确保数据的一致性和完整性。
  5. 高性能:APIJSON采用了多级缓存机制,可以大大提高接口访问的性能,同时还支持分页查询、条件查询等功能,进一步提升了系统的性能。
  6. 社区活跃:APIJSON是一个有影响力的开源项目(GitHub 15.6K Star ),拥有活跃的社区和开发者群体,并且优先提供企业用户支持,还提供了丰富的文档和示例代码,开发人员可以快速上手和解决问题。
    APIJSON VS GraphQL

GraphQL是一种用于API开发的查询语言和运行时环境。它由Facebook于2015年开发并开源,旨在解决传统RESTful API的一些问题。与传统的RESTful API不同,GraphQL允许客户端精确地描述其需要的数据。客户端可以发送一个GraphQL查询,指定需要的字段和相关的数据关系,而服务器将返回与查询相匹配的精确数据。

3.APIJSON VS GraphQL
GraphQL是一种用于API开发的查询语言和运行时环境。它由Facebook于2015年开发并开源,旨在解决传统RESTful API的一些问题。与传统的RESTful API不同,GraphQL允许客户端精确地描述其需要的数据。客户端可以发送一个GraphQL查询,指定需要的字段和相关的数据关系,而服务器将返回与查询相匹配的精确数据。
截屏2025-05-15 下午3.46.14.png
相比之下,APIJSON有其独特的优点。
截屏2025-05-15 下午3.46.23.png

4.为什么选择APIJSON作为MassCMS的推荐方式

  1. 强大的数据查询功能
    APIJSON支持复杂的数据查询,包括多表关联查询、条件筛选、排序、分页等功能。开发者可以通过简洁的语法实现复杂的查询需求。
  2. 灵活的权限控制
    APIJSON提供了灵活的权限控制机制,开发者可以针对不同的用户角色设置不同的数据访问权限。这使得开发人员可以轻松地实现接口的权限控制,确保数据的安全性。
  3. 快速的接口开发
    APIJSON基于注解的方式,简化了接口的开发过程。开发者只需要在实体类上添加相应的注解,即可自动生成接口的增删改查功能,大大减少了开发工作量。
  4. 易于扩展和定制化
    APIJSON支持自定义注解以及扩展功能,开发者可以根据自己的需求进行定制化开发。同时,APIJSON还提供了丰富的插件机制,方便开发者进行二次开发和扩展。
  5. 高性能和高并发
    APIJSON采用了基于HTTP协议的JSON交互方式,相比传统的接口开发方式,具有更高的性能和更好的并发能力。在大数据量和高并发的场景下,APIJSON能够更好地满足需求。
    如何使用MassCMS创建内容API
  6. 创建项目
    MassCMS不仅可以创建空白项目,还可以根据模版创建项目,而且可以在一个账户体系上创建多个项目,具备同时管理多个项目的能力。
  7. 创建内容模型:
    使用 MassCMS 的管理界面,你可以创建不同的内容模型。例如,你可以创建文章、产品、页面等不同类型的内容,并为每个类型定义所需的字段。
    为每个内容类型定义字段,并选择适当的字段类型,如文本、日期、图像等。你还可以设置关系字段,以关联不同类型的内容,如将产品与文章进行关联。
  8. 创建和管理内容
    使用 MassCMS 的管理界面,你可以创建和管理内容实例。通过选择合适的内容类型和填写字段值,你可以创建新的内容实例,并设置其属性。你可以随时更新和编辑内容,以满足业务需求。
  9. 生成内容API
    创建完模型马上就会自动生成内容API,你可以通过API或其他方式将数据与MassCMS系统进行集成,实现数据的实时同步和更新。

5.客户端使用APIJSON进行内容API查询

  1. masscms 支持 APIJSON,Restfui,GraphQL 三种接口调用方式。接口调用需要鉴权,使用 AES 加密,示例代码如下,具体参考示例代码中/utils/auth.js 文件中详细代码.

    export function getCallsSide() {
     let callsside = JSON.stringify({
         openApiStatus: true,
         projectAppId: "P88666",
         timestamp: Date.now(),
     });
     return Encrypt(callsside);
    }
    function Encrypt(word) {
     let srcs = CryptoJS.enc.Utf8.parse(word);
     let encrypted = CryptoJS.AES.encrypt(srcs, key, {
         iv: iv,
         mode: CryptoJS.mode.CBC,
         padding: CryptoJS.pad.Pkcs7,
     });
     return encrypted.ciphertext.toString().toUpperCase();
    }
    
  2. 接口调用支持三种方式,更推荐使用 APIJSON 方式调用。APIJSON 和 Restfui 调用和 HTTP 接口调用方式一样,可集成 axios 或使用原生 fetch 方法调用,示例代码如下:
    APIJOSN:

    let data = { "[]": { P88666_moment: {} } };
       fetch("https://saas.masscms.com/cms-api/cms/api/get", {
         method: "POST",
         headers: {
           "CALLS-SIDE": getCallsSide(),
           "API-TOKEN": getApiToken(),
         },
         body: JSON.stringify(data),
       })
         .then((data) => {
           return data.json();
         })
         .then((res) => {
           console.log(res);
           this.moments = res["[]"];
         });
    
  3. 使用不同的客户端语言进行查询Demo。
    vuejs:https://gitee.com/masscms/masscms_client/tree/master/with-vuejs
    nextjs:https://gitee.com/masscms/masscms_client/tree/master/with-nextjs
    reactjs:https://gitee.com/masscms/masscms_client/tree/master/with-reactjs
    nuxtjs:https://gitee.com/masscms/masscms_client/tree/master/with-nuxtjs
    miniprogram:https://gitee.com/masscms/masscms_client/tree/master/with-miniprogram

  4. 使用MassCMS产品的接口调试工具APIs进行不同接口类型调试,并且自动生成API文档。
    94e0cdbb-dc27-4f0f-a258-4219142ea7f4.png

6.总结

我们已经在众多项目中得到实践,根据我们的切身的使用体会,APIJSON是一款功能强大、易用性高的后端接口框架。它简化了前后端的数据交互过程,提供了丰富的查询能力和安全的数据访问方式,同时还具备高性能的数据返回能力。在实际项目中使用APIJSON,我们的开发效率得到了极大的提升,同时也提升了系统的性能和安全性。

目录
相关文章
|
4月前
|
人工智能 缓存 自然语言处理
2026年Qwen 3.7 Plus 与 Max 实测:性价比与多模态能力差异解析
Qwen 3.7系列作为主流大模型,推出Max与Plus两大核心版本,二者定位差异清晰:Max是纯文本推理旗舰,专注高强度智能体与复杂逻辑任务;Plus是多模态全能版,在保留强大文本能力的同时,补齐图像、视频理解能力,且价格大幅降低。本文基于2026年最新实测数据,从核心参数、文本能力、多模态能力、性价比与场景选型五大维度,全面解析两款模型的差异,为开发者与企业提供精准选型参考。
957 0
|
存储 人工智能 文字识别
医疗病历结构化处理系统技术白皮书——基于多模态AI的医联体数据治理方案
本系统基于双端协同架构,集成移动端OCR识别与云端数据分析,实现医疗文档高效结构化处理。采用PaddleOCR轻量引擎与隐私计算技术,支持离线识别与敏感信息脱敏。后端构建分布式数据仓库与多租户机制,满足PB级存储与数据安全合规要求。实测OCR准确率达96.2%(印刷体)与88.7%(手写体),字段抽取F1值92.4%,显著提升病历处理效率与质量。
1582 3
|
存储 Web App开发 JSON
存储界的cookie、本地存储、会话存储
存储界的cookie、本地存储、会话存储
1025 0
|
NoSQL IDE MongoDB
Studio 3T 2025.18 发布 - MongoDB 的终极 GUI、IDE 和 客户端
Studio 3T 2025.18 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
688 0
Studio 3T 2025.18 发布 - MongoDB 的终极 GUI、IDE 和 客户端
|
JavaScript
【Vue面试题十四】、说说你对vue的mixin的理解,有什么应用场景?
这篇文章详细介绍了Vue中`mixin`的概念、应用场景和源码分析,解释了`mixin`如何用于代码复用、功能模块化,并通过实际代码示例展示了在Vue组件中局部混入和全局混入的使用方式。
【Vue面试题十四】、说说你对vue的mixin的理解,有什么应用场景?
|
Linux API 开发者
​geth命令参数详解 1.10.4​
​geth命令参数详解 1.10.4​
627 0
|
缓存 运维 安全
2025 年 3 个最佳 WordPress 托管平台推荐
2025年,WordPress托管平台的选择对网站成功至关重要。本文推荐三大优质平台:WebSoft9,以企业级安全和开源优化见长;Hostinger,高性价比且新手友好;Bluehost,官方认证稳定性强。根据用户需求,WebSoft9适合技术要求高的企业,Hostinger适配预算有限的个人,Bluehost则面向追求稳定的中小企业。综合评估网站规模、技术和预算,选择最适合的平台可显著提升效率与安全性。
1006 1
WK
|
开发框架 移动开发 Java
C++和Java哪个更适合开发移动应用
本文对比了C++和Java在移动应用开发中的优劣,从市场需求、学习难度、开发效率、跨平台性和应用领域等方面进行了详细分析。Java在Android开发中占据优势,而C++则适合对性能要求较高的场景。选择应根据具体需求和个人偏好综合考虑。
WK
729 0
|
缓存 小程序 IDE
【每周一个小技巧】支付宝小程序自定义tabbar效果
【每周一个小技巧】支付宝小程序自定义tabbar效果
1087 2
|
存储 分布式计算 分布式数据库
大数据技术原理与应用 期末复习 知识点全总结(林子雨版
大数据技术原理与应用 期末复习 知识点全总结(林子雨版
4423 1