MassCMS With APIJSON最佳实践

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 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,我们的开发效率得到了极大的提升,同时也提升了系统的性能和安全性。

目录
相关文章
|
30天前
|
人工智能 自然语言处理 前端开发
Headless CMS是什么?
Headless CMS作为一种新型的内容管理系统,通过前后端解耦、API接口以及跨平台特性,提供了灵活性、性能优化、团队协作等优势。Headless CMS作为一种灵活、可扩展的内容管理系统,有着广阔的发展空间。随着数字化转型的深入推进,无头CMS将在多个行业和领域中发挥重要作用,为企业提供更好的内容管理和展示解决方案。
146 12
|
1月前
|
机器学习/深度学习 设计模式 人工智能
深度解析Agent实现,定制自己的Manus
文章结合了理论分析与实践案例,旨在帮助读者系统地认识AI Agent的核心要素、设计模式以及未来发展方向。
796 99
深度解析Agent实现,定制自己的Manus
|
30天前
|
人工智能 监控 安全
面对MCP"工具投毒",我们该如何应对
本文探讨了MCP(Model Context Protocol)的安全风险与防护措施。MCP作为AI系统与外部工具交互的标准框架,虽提升了插件兼容性,但也带来了“工具投毒”等安全威胁。攻击者可通过篡改工具描述,诱导模型执行非授权操作,如读取敏感文件。文章详细分析了攻击原理,并通过复刻实验展示了如何利用MCP客户端/服务器代码实现此类攻击。为应对风险,提出了基于大模型智能评估和eBPF技术的两种安全可观测方案:前者通过内置评估模板检测潜在威胁,后者实时监控系统运行时行为,结合两者可有效提升MCP系统的安全性。
637 92
面对MCP"工具投毒",我们该如何应对
|
30天前
|
监控 Kubernetes Go
日志采集效能跃迁:iLogtail 到 LoongCollector 的全面升级
LoongCollector 在日志场景中实现了全面的重磅升级,从功能、性能、稳定性等各个方面均进行了深度优化和提升,本文我们将对 LoongCollector 的升级进行详细介绍。
281 86
|
25天前
|
存储 SQL 大数据
从 o11y 2.0 说起,大数据 Pipeline 的「多快好省」之道
SLS 是阿里云可观测家族的核心产品之一,提供全托管的可观测数据服务。本文以 o11y 2.0 为引子,整理了可观测数据 Pipeline 的演进和一些思考。
224 34
|
30天前
|
人工智能 资源调度 监控
LangChain脚本如何调度及提效?
本文介绍了通过任务调度系统SchedulerX管理LangChain脚本的方法。LangChain是开源的大模型开发框架,支持快速构建AI应用,而SchedulerX可托管AI任务,提供脚本版本管理、定时调度、资源优化等功能。文章重点讲解了脚本管理和调度、Prompt管理、资源利用率提升、限流控制、失败重试、依赖编排及企业级可观测性等内容。同时展望了AI任务调度的未来需求,如模型Failover、Tokens限流等,并提供了相关参考链接。
178 28
LangChain脚本如何调度及提效?
|
26天前
|
人工智能 安全 API
Higress MCP Server 安全再升级:API 认证为 AI 连接保驾护航
Higress MCP Server 新增了 API 认证功能,为 AI 连接提供安全保障。主要更新包括:1) 客户端到 MCP Server 的认证,支持 Key Auth、JWT Auth 和 OAuth2;2) MCP Server 到后端 API 的认证,增强第二阶段的安全性。新增功能如可重用认证方案、工具特定后端认证、透明凭证透传及灵活凭证管理,确保安全集成更多后端服务。通过 openapi-to-mcp 工具简化配置,减少手动工作量。企业版提供更高可用性保障,详情参见文档链接。
327 42
|
1月前
|
人工智能 PyTorch 算法框架/工具
ACK AI Profiling:从黑箱到透明的问题剖析
本文从一个通用的客户问题出发,描述了一个问题如何从前置排查到使用AI Profiling进行详细的排查,最后到问题定位与解决、业务执行过程的分析,从而展现一个从黑箱到透明的精细化的剖析过程。
|
29天前
|
自然语言处理 前端开发 API
10个常用的无头CMS(Headless CMS)
无头CMS是一种内容管理系统,它将前端和后端分离,只关注内容的创建和管理,而不处理呈现内容的前端界面。传统的CMS通常将内容管理和展示耦合在一起,即内容的创建、编辑和展示都依赖于特定的前端界面和模板。而无头CMS则将内容与前端逻辑完全解耦,提供了一种更加灵活的方式来处理内容。
138 3
|
23天前
|
人工智能 监控 安全
MCP for 可观测2.0,6个让MCP开发更高效的小妙招
可观测近年来已经成为一个关键概念,它不仅仅局限于监控,还包括了日志记录、指标收集、分布式追踪等技术手段,旨在帮助团队更好地理解系统运行状况、快速定位问题以及优化性能。可观测2.0融合 MCP,可以让用户更好地感知系统、分析问题——用自然语言开启与系统的对话!本文将分享6个设计 MCP Server 的亲身实践,帮助大家更好地融合与使用。
470 89
MCP for 可观测2.0,6个让MCP开发更高效的小妙招