GraphQL 查詢字符串的組裝
GraphQL 既是一種用於 API 的查詢語言也是一個滿足你數據查詢的運行時。 GraphQL 對你的 API 中的數據提供了一套易於理解的完整描述,使得客戶端能夠準確地獲得它需要的數據,而且沒有任何冗餘,也讓 API 更容易地隨着時間推移而演進,還能用於構建強大的開發者工具。
我們今天來講解一下如何進行 graphql 查詢字符串的組裝,在 Javascript 中,graphql 查詢字符串的格式如下
`{ list { id name description } }`
當查詢類型比較少時,我們還是可以通過手寫來維持,但是一旦查詢的複雜度開始上升時,手寫字符串查詢會導致以下幾個問題:
- 難以維護;
- 難以排查問題;
- 沒有結構化,容易出錯;
而 npm
提供了這麼一個小工具,叫做 shadows-graphql-query
,我們通過 npm install
進行安裝,然後我們按照下面的方法使用
const gql_query = require('shadows-graphql-query');
const query = gql_query({
categoryList: ['_id', 'level', 'title', 'description', 'post'],
product: ['_id', 'level', 'title', 'description', 'post']
});
console.log(query);
/**
* 最後解析出來的查詢字符串是這樣的
{ categoryList { _id level title description post } product { _id level title description post } }
*/
該插件還支持嵌套和批量解析,可以充分滿足結構化查詢的需求。
喜歡的話給一顆 star 吧(GraphQL 查詢字符串組裝 屬於原創)。
Star 超過 10 顆的話,作者將會提供一套完整的 GraphQL 前後端架構方案。