当前位置: 首页 > 后端技术 > Node.js

“积木库”GraphQL技术搭建的无代码开发平台

时间:2023-04-03 17:07:32 Node.js

GraphQL最大的优势在于简化了请求响应的内容,不会有多余的字段。前端可以决定从后端返回什么数据。但需要注意的是,前端的决策权取决于后端支持什么数据,所以GraphQL更像是简化返回值的REST,后端接口也可以定义所有一次运行,不需要一个一个开发。看一下GraphQL的定义:GraphQL是一种新的API标准,它提供了一种比REST更高效、更强大、更灵活的替代方案。它由Facebook开发和开源,现在由来自世界各地的公司和个人组成的大型社区维护。GraphQL本质上是一种基于API的查询语言。现在大多数应用程序都需要从服务器获取数据。这些数据存储可以存储在数据库中。API的职责是提供一个接口来存储符合应用程序要求的数据。.它独立于数据库,可以在任何使用API的环境中有效使用。我们可以理解为GraphQL是基于API的一层封装,目的是更好更灵活的适应业务需求的变化。简单地说,GraphQL是一种旨在降低从客户端调用API的复杂性的语言。让前端有更多的空间去操作数据调用。后端API无非就是CRUD,提供数据服务。但是经常会出现前后端数据模型不一致,或者API文档过时,版本管理麻烦等问题。GraphQL为前端和后端API使用一致的架构。API提供数据服务的能力是标准化的,获取和写入数据都需要进行数据模型验证,类似于TypeScript的强制类型,避免了数据类型带来的灾难性错误。无代码开发平台,积木库使用GraphQL作为前后端数据传输的中间件,使用ApolloGraphQL框架,后端使用NodeJs和ApolloServer,使用NextJs和ApolloClient进行前端。GraphQL包含了完整的缓存处理机制,根据策略采用不同的缓存方式,比如本地缓存优先级或者网络优先级。创建客户端API端口,从“@apollo/client”导入{ApolloClient,InMemoryCache};constclient=newApolloClient({uri:"https://admin.jimuku.com/graphql",cache:newInMemoryCache(),});exportdefaultclient;Query查询语句:querystart($host:String){start(host:$host){codesuccessmessagedata{touriststemplate}}}Playgroundpanel根据Query返回结果q??uery:{"data":{"start":{"code":200,"success":true,"message":"success","data":{"tourists":false,"template":"official"}}}}Data返回的字段可以在Query中指定。这样,请求的粒度就更细了,细化到每个字段。在React组件的代码中:exportasyncfunctiongetStaticProps(){const{data}=awaitclient.query({query:gql`queryCountries{countries{codenameemoji}}`,});return{props:{countries:data.countries.slice(0,4),},};}页面中实际的使用:{countries.map((country)=>(

{country.name}

{country.code}-{country.emoji}

))}
这里只是对GraphQL的一个大概了解,有兴趣的可以阅读ApolloGraphQLdocument,不过只有英文版,非常详细的无代码开发是近两年的流行趋势,也是软件应用开发发展的必然结果。不管是low-code还是no-code,需要尽可能减少重复的开发动作,创建一个配置好的组件,以组件匹配的方式完成页面的设计,这也是积木库名称的灵感来源。在积木中库,不需要写代码,直接使用组件组成页面,完成网页的开发。很重要的一点是,不需要积木库匹配代码的应用,可以直接发布上线.管理后台、前端页面、国际多语言、功能模块、数据备份、恢复、导入导出等,都集成在一个完整的系统中。直接在线发布,轻松快速开发,这是积木库前后端最新技术的融合,降低了应用的前期开发成本,帮助创业团队快速启动项目。最后,如果你有兴趣了解积木库,无代码快速开发,欢??迎尝试。