新聞中心
No Server Code Application(無服務(wù)端編程服務(wù)推薦)

建網(wǎng)站原本是網(wǎng)站策劃師、網(wǎng)絡(luò)程序員、網(wǎng)頁設(shè)計師等,應(yīng)用各種網(wǎng)絡(luò)程序開發(fā)技術(shù)和網(wǎng)頁設(shè)計技術(shù)配合操作的協(xié)同工作。創(chuàng)新互聯(lián)公司專業(yè)提供成都做網(wǎng)站、成都網(wǎng)站設(shè)計,網(wǎng)頁設(shè)計,網(wǎng)站制作(企業(yè)站、響應(yīng)式網(wǎng)站開發(fā)、電商門戶網(wǎng)站)等服務(wù),從網(wǎng)站深度策劃、搜索引擎友好度優(yōu)化到用戶體驗(yàn)的提升,我們力求做到極致!
寫的文章太偏總是沒人看,對大家其實(shí)幫助也不大,所以寫點(diǎn)實(shí)用的吧,我相信此文介紹的服務(wù)是很多前端開發(fā)的痛點(diǎn),應(yīng)該也有不少人想象過這樣的服務(wù),但是可能因?yàn)榉椒ɑ蛘咂渌?,沒有找到適合的服務(wù),今天我就介紹兩個比較成熟的,甚至可以在生產(chǎn)環(huán)境使用的無服務(wù)端編程服務(wù)。
問題
一句話總結(jié),就是
有沒有一個方案,可以簡單的部署,然后不需要做任何的服務(wù)端開發(fā),即可由前端開發(fā)從 JS 端直接向數(shù)據(jù)庫做較為復(fù)雜的增刪改查?
其實(shí)之前我在知乎上看到過這個問題,很多人其實(shí)會覺得這個是異想天開,這個問題背后有很多問題,例如:如何做復(fù)雜的查詢(聯(lián)合、分組等)?如何實(shí)現(xiàn)業(yè)務(wù)邏輯?如何分發(fā)事件給其他系統(tǒng)?如何保障安全(注入、權(quán)限等)?
不過,想過這個問題的前端不止你一個,其實(shí)不止是前端,服務(wù)端同學(xué)也非常痛恨增刪改查,從很早,服務(wù)端框架中就內(nèi)置各種 crud 腳手架,不過腳手架還是腳手架,還沒有達(dá)到完全的”無代碼“,對前端同學(xué)來說總是有成本的。
今天,我們就推薦兩個服務(wù),請各取所需。
傳統(tǒng)的無服務(wù)代碼
首先介紹一個思路比較傳統(tǒng)的小服務(wù),可能不能很好的使用于生產(chǎn)環(huán)境,支持的功能也有限,但是對于想快速開發(fā)一個demo,且沒有元數(shù)據(jù)管理等訴求的同學(xué),也不失是一個簡單粗暴的解決方案,你只要給他喂一個數(shù)據(jù)庫,他就可以暴露出各種 api 來。
不過這個小服務(wù)也有一些問題: 1. 安全方面,不是很能保障。 2. 查詢條件的構(gòu)建,有些麻煩,不如下一個方案方便。 3. 查詢有一些隱含的限制,例如查詢條數(shù)限制在1W以內(nèi),而且不可配置。 4. 分組匯總等能力有限,無法疊加其他字段計算。
講一下優(yōu)勢:
- 這個庫大概有4300個star,相對來說還是比較熱門的。
- 使用 nodejs 開發(fā),安裝非常簡單,沒有特別的依賴,這個算是一個優(yōu)勢。
- 支持單體、列表等查詢,支持分組、關(guān)聯(lián)表等。
- 支持直接輸出某些圖表需要的數(shù)據(jù)結(jié)構(gòu),并且可以自動生成x軸的分組等。
具體的功能大家可以去github直接查看,安裝和配置也非常簡單,基本不需要任何服務(wù)端和服務(wù)器運(yùn)維經(jīng)驗(yàn)。
Hasura,Instant GraphQL for all your data
這是第二個服務(wù)的標(biāo)語,這是我在調(diào)研 GraphQL 相關(guān)生態(tài)后,我認(rèn)為對 data to graphql 封裝最徹底的服務(wù),完全實(shí)現(xiàn)了三無:
- 無代碼元數(shù)據(jù)管理
- 無代碼增刪改查
- 無代碼邏輯串聯(lián)
- 無代碼事件分發(fā)
同時,他有些特別的優(yōu)勢:
- 使用 graphql,社區(qū)流行的標(biāo)準(zhǔn)前端查詢語法
- 支持各種數(shù)據(jù)源、支持地理查詢等各種查詢姿勢
- 非常強(qiáng)大的可視化查詢構(gòu)建器,前端查詢代碼基本也不需要手寫
簡單介紹一下
查詢構(gòu)建器
這是我最看重的功能,雖然 graphql 官方就是有查詢構(gòu)建器的,但是其實(shí)沒這么強(qiáng)大,hasura 是做了很多代碼層面的封裝,才實(shí)現(xiàn)了諸多類型的查詢組合,直接上圖:
這里是一張表,里面有地理信息,整個查詢,通過左側(cè)點(diǎn)一點(diǎn),就可以構(gòu)建出各種查詢(以及刪除、增加、更新等操作語法),我其實(shí)深深理解構(gòu)建通用查詢接口的參數(shù)有多么痛苦,所以這個 Query Builder 對我來說是莫大的福音。
Hasura 是個比較龐大的服務(wù),他的部署是通過 docker 來部署的,所以需要你的服務(wù)器或者電腦,有 docker 和 docker-compose 的環(huán)境,然后部署就變的特別簡單了,一個命令即可搞定。
安裝后,啟動服務(wù),即可利用你配置的數(shù)據(jù)庫信息自動生成所有表的 scheme 信息,及相應(yīng)的增刪改查方法,然后使用 query builder 構(gòu)建你的請求即可,無需做任何代碼的開發(fā)。
另外 hasura 支持一些圍繞元數(shù)據(jù)的其他功能,例如多表組合(通過數(shù)據(jù)庫的view實(shí)現(xiàn)),例如 Actions,用來編排和串聯(lián)多個服務(wù)、內(nèi)外服務(wù)、數(shù)據(jù)接口的,還有 Events,用來做數(shù)據(jù)的變更通知等。另外,hasura 也支持一些代碼層面的使用方式,擁有一些腳手架命令可以自動生成 scheme 等,也可以自己寫代碼去使用 engine 和 scheme 等。
目前 hasura 的所有功能都支持 postgres 數(shù)據(jù)庫,另外也有支持 mysql 的 beta 版,mysql版沒有很多高級功能,但是基本的 query builder 和增刪改查是完整的。
官方文檔: Hasura GraphQL Engine Documentation | Hasura GraphQL Docs
Github 項(xiàng)目: https:// github.com/hasura/graph ql-engine/
mysql 版: MySQL preview | Hasura GraphQL Docs
網(wǎng)頁名稱:無服務(wù)端編程服務(wù)推薦(前端必備)
當(dāng)前地址:http://m.fisionsoft.com.cn/article/cdchchg.html


咨詢
建站咨詢
