NoServerCodeApplication(无服务端编程服务推荐)写的文章太偏,总是没人看,对大家帮助不大,所以写点实用的吧,相信本文介绍的服务是很多前端开发的痛点。很多人应该都想过这样的服务,但是可能因为方式或者其他原因,找不到合适的服务。今天给大家介绍两个比较成熟的,甚至是可以在生产环境中使用的无服务器编程服务。一句话总结这个问题,有没有一种解决方案,可以方便部署,然后不需要任何服务端开发,前端开发可以直接从JS端进行更复杂的增删改查到数据库?其实之前在知乎上看到过这个问题。许多人实际上认为这是异想天开。这个问题背后有很多问题,比如:如何做复杂的查询(联合、分组等)?如何实现业务逻辑?如何分发事件到其他系统?如何保证安全性(注入、权限等)?然而,你并不是唯一想过这个问题的前端。其实不止是前端。服务器端的同学也很讨厌增删改查。完全“无代码”对于前端同学来说总是有成本的。今天为大家推荐两种服务,请选择您需要的。传统的servicelesscode先介绍一个比较传统思路的小服务,在生产环境中可能用的不好,支持的功能也有限,但是对于想快速开发一个没有元数据管理等需求的demo的同学,也有一种简单粗暴的解决方法。你只要给他一个数据库,他就可以暴露各种API。不过这个小服务也存在一些问题:1.在安全性方面,不是很有保障。2.查询条件的构造有些麻烦,不如下一个方案方便。3、查询有一些隐含的限制,比如查询次数限制为1W,不可配置。4.分组汇总等能力有限,无法叠加其他字段计算。先说优点:这个库有4300左右的star,比较受欢迎。用nodejs开发,安装非常简单,没有特别的依赖,这是优点。支持单个、列表等查询,支持分组、关联表等,支持直接输出部分图表需要的数据结构,可以自动生成x轴分组等,具体功能可以去github查看直接地。安装配置也非常简单,基本不需要服务器和服务器运维经验。Hasura,InstantGraphQLforyouralldata这是第二项服务的口号。在考察了GraphQL相关生态后,我认为它是将数据封装到graphql中最彻底的服务。完全实现了三无:无代码元数据管理无代码增删改查,无代码逻辑系列,无代码事件分发,同时它还有一些特别的优势:使用graphql,标准前端-社区流行的端查询语法,支持各种数据源、地理查询等多种查询姿势非常强大的可视化查询生成器,前端查询代码基本不用手写。简要介绍查询构建器。这是我最看重的功能。虽然graphql官方有querybuilder,但是没有那么强大。Hasura在代码层面做了很多封装,实现了多种查询组合,直接上图:这里是一张表,里面有地理信息,整个查询,通过点击左侧,可以构建各种查询(和delete,add,update等操作语法),我其实深刻体会到为一个通用的查询接口构建参数是多么的痛苦,所以这个QueryBuilder对我来说是一个天大的福音。Hasura是一个比较大的服务。它的部署是通过docker进行的,所以你需要你的服务器或者电脑有docker和docker-compose环境,这样部署就变得非常简单,一条命令就可以搞定。安装完成后,启动服务,就可以使用你配置的数据库信息自动生成所有表的scheme信息,以及对应的增删改查查询方法,然后使用querybuilder构建你的request,无需任何代码发展。另外,hasura还支持一些其他围绕元数据的功能,比如多表组合(通过数据库的视图实现),比如Actions,用于排列和连接多个服务,内部服务和外部服务,数据接口,以及事件,用来做数据变化的通知等。另外,hasura也支持一些代码级的使用方式。它有一些脚手架命令可以自动生成scheme等,你也可以自己写代码使用engine和scheme。目前hasura的所有功能都支持postgres数据库,也有支持mysql的测试版。mysql版本的高级功能不多,但是基本的querybuilder和CRUD都很齐全。官方文档:HasuraGraphQL引擎文档|HasuraGraphQLDocsGithub项目:https://github.com/hasura/graphql-engine/mysql版本:MySQL预览|HasuraGraphQL文档
