當前位置: 妍妍網 > 碼農

GraphQL 為什麽火不起來?這麽多年了~

2024-03-01碼農

模擬面試、簡歷指導、入職指導、計畫指導、答疑解惑 可私信找我~已幫助100+名同學完成改造!

前言


大家好,我是林三心,用最通俗易懂的話講最難的知識點是我的座右銘,基礎是進階的前提是我的初心~

GraphQL 是啥?

官方介紹 :GraphQL 既是一種用於 API 的查詢語言也是一個滿足你數據查詢的執行時。GraphQL 對你的 API 中的數據提供了一套易於理解的完整描述,使得客戶端能夠準確地獲得它需要的數據,而且沒有任何冗余,也讓 API 更容易地隨著時間推移而演進,還能用於構建強大的開發者工具。

通俗點說就是: 我們在使用 Restful 風格介面的時候,增刪改查可能會有四個介面,但是如果你用了 GraphQL 的話,可能就只需要一個介面,透過傳遞不同的樣版參數,去執行不同的增刪改查操作~

你可以靈活地去呼叫 GraphQL 去獲取你自己想要的數據

簡單實踐

GraphQL 優勢?

很多公司的後端使用了 GraphQL 來代替之前的 Restful 介面風格,那麽為啥呢?GraphQL 到底有什麽優勢,值得這些公司去使用呢?

靈活

我們使用 Restful 的時候,大部份情況下一個介面只能返回一種數據,如果你想要另一種數據,那只能是重新再寫一個介面

但是在 GraphQL 中,返回什麽樣的數據,可以由呼叫方去決定,就比如剛剛實踐的例子,假如我傳了

那麽資料庫查詢會返回給我兩個欄位的數據

如果你只需要一個欄位,那麽你可以傳

那麽資料庫查詢就只會返回給你一個欄位

精簡

其實剛剛已經舉過例子了,Restful 風格下,增刪改查需要寫四個介面,但是 GraphQL 可能只需要一個介面即可,大大減少了介面程式碼

統一

因為 GraphQL 查詢的入口大大減少,甚至可能一個計畫只有一個查詢入口,所以統一了查詢的規範

GraphQL 局限性

學習成本

大部份前後端都習慣了 Restful 風格,想要轉 GraphQL 需要一定的學習成本,所以我們可以看到一般使用 GraphQL 的都是初創公司或者大公司,只有這些公司才有條件或者成本區做這件事

建設成本

很多公司都一直是建設 Restful 的基礎架構,如果想要轉 GraphQL,那意味著可能需要改造現有的架構,這是需要時間成本和建設成本的

雞肋?

說 GraphQL 好用吧,確實挺好用,但是說非他不可吧,好像也不是。感覺就是還沒到非用他不可的地步

安全性

正是因為 GraphQL 的靈活性開放性,所以導致了他的安全系數大大降低。

呼叫方能靈活獲取數據,那是萬萬不可的,因為有一些私密數據可不能給他們去獲取~

可能還有遇到一些惡意使用者,對你的數據進行查詢,進而對你造成不利

排隊?

只有一個查詢入口的話,那如果很多呼叫方同時呼叫的話,難道要排隊查詢嗎?這樣的話會不會查詢時長會很久?

結語

我是林三心

  • 一個待過 小型toG型外包公司、大型外包公司、小公司、潛力型創業公司、大公司 的作死型前端選手;

  • 一個偏前端的全幹工程師;

  • 一個不正經的金塊作者;

  • 逗比的B站up主;

  • 不帥的小紅書博主;

  • 喜歡打鐵的籃球菜鳥;

  • 喜歡歷史的乏味少年;

  • 喜歡rap的五音不全弱雞如果你想一起學習前端,一起摸魚,一起研究簡歷最佳化,一起研究面試進步,一起交流歷史音樂籃球rap,可以來俺的摸魚學習群哈哈,點這個,有7000多名前端小夥伴在等著一起學習哦 -->

  • 廣州的兄弟可以約飯哦,或者約球~我負責打鐵,你負責進球,謝謝~