开心六月综合激情婷婷|欧美精品成人动漫二区|国产中文字幕综合色|亚洲人在线成视频

    1. 
      
        <b id="zqfy3"><legend id="zqfy3"><fieldset id="zqfy3"></fieldset></legend></b>
          <ul id="zqfy3"></ul>
          <blockquote id="zqfy3"><strong id="zqfy3"><dfn id="zqfy3"></dfn></strong></blockquote>
          <blockquote id="zqfy3"><legend id="zqfy3"></legend></blockquote>
          打開APP
          userphoto
          未登錄

          開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

          開通VIP
          2019年13大GraphQL工具和庫

          GraphQL 是 Facebook 內(nèi)部從 2012 年開始開發(fā)的項(xiàng)目,于 2015 年公開發(fā)布。2018 年 11 月 7 日,GraphQL 的控制權(quán)被移交給由 Linux 基金會托管的 GraphQL 基金會。隨后 GraphQL 日益普及,一個富有活力的生態(tài)系統(tǒng)也隨之迅速成長。

          GraphQL 本質(zhì)上是“API 的查詢語言,以及使用你為數(shù)據(jù)定義的類型系統(tǒng)執(zhí)行查詢的服務(wù)端運(yùn)行時”。它不依賴任何數(shù)據(jù)庫或存儲,而是由你的代碼和數(shù)據(jù)來支持。GraphQL 查詢是發(fā)送到運(yùn)行時的字符串,它向客戶端返回 JSON。GraphQL 地址:

          https://graphql.org/

          這種簡單有效的設(shè)計(jì)催生了一個充滿活力生態(tài)系統(tǒng),社區(qū)有大批關(guān)于它的內(nèi)容、演講和指南,當(dāng)然還有一系列開源工具、客戶端、編輯器和庫,增強(qiáng)并完善實(shí)踐中的 GraphQL 工作流程。

          本文收集了一些最出色的 GraphQL 工具和庫,內(nèi)容涵蓋客戶端庫、IDE 及好用的集成。這些工具 排名不分先后,請隨意發(fā)表評論,提出建議。

          1. Apollo 服務(wù)器和客戶端

          APOLLO 平臺是 GraphQL 的一個實(shí)現(xiàn),幫助用戶管理從云到 UI 的各類數(shù)據(jù)。它可以漸進(jìn)引入,可以在包括 REST API 和數(shù)據(jù)庫在內(nèi)的現(xiàn)有服務(wù)上另起一層運(yùn)行。

          Apollo-client 是 Apollo GraphQL 的客戶端庫。它是一個“功能齊全的緩存式 GraphQL 客戶端,集成了 React 和 Angular 等功能”。用戶可以用它輕松構(gòu)建通過 GraphQL 獲取數(shù)據(jù)的 UI 組件,所以它與 Bit 搭配會是非常強(qiáng)大的組合。它的檢索數(shù)據(jù)、跟蹤加載和錯誤狀態(tài)以及更新 UI 的所有邏輯都使用聲明式數(shù)據(jù)提取方法封裝在一個查詢組件中,該組件可以由展示組件(presentational component)組成。這套方法在很多場景下可以大大簡化編程工作。

          Apollo-server 實(shí)現(xiàn)了一個符合規(guī)范的 GraphQL 服務(wù)器,可以從包括 Apollo Client 在內(nèi)的任何 GraphQL 客戶端上查詢。用它可以使用來自任何來源的數(shù)據(jù)快速為 GraphQL 客戶端構(gòu)建符合生產(chǎn)需求、自注釋的 API。它是開源服務(wù)器,既可以用作獨(dú)立服務(wù)器,也能當(dāng)作已有 Node.js HTTP 服務(wù)器的附加組件,還支持“無服務(wù)器”環(huán)境以及使用 GraphQL.js 構(gòu)建的各種 GraphQL schema。

          另外下面兩個項(xiàng)目是對 Apollo 很好的補(bǔ)充:

          • 項(xiàng)目一:

            https://github.com/apollographql/graphql-tools

          • 項(xiàng)目二:

            https://github.com/Akryum/vue-apollo

          相關(guān)鏈接:

          • APOLLO 平臺:

            https://medium.com/@ApolloApps

          • Apollo-client:

            https://github.com/apollographql/apollo-client

          • Bit:https://bit.dev/

          • Apollo-server:

            https://github.com/apollographql/apollo-server

          • GraphQL.js:

            https://github.com/graphql/graphql-js

          2. Bit

          Bit 是一個開源工具和平臺,可將可重用代碼轉(zhuǎn)換為不同項(xiàng)目都能輕松共享和開發(fā)的組件。

          自發(fā)布以來,Bit 作為在項(xiàng)目之間組織和共享組件的模塊化解決方案成績斐然。雖然 Bit 常被用在 UI 組件上,但它為 GraphQL API 也提供了很多非常有用的獨(dú)特功能。

          用戶可以使用 Bit 將 API 示例和客戶端(例如 Apollo)轉(zhuǎn)換組件,讓團(tuán)隊(duì)可以在各種項(xiàng)目中輕松共享和使用,同時可以直接從消費(fèi) repo 中修改組件的代碼。

          這樣你的 API 集成就成了一條雙行線,其他人可以將 API示例組件快速應(yīng)用在自己的項(xiàng)目中,并迅速投入實(shí)際生產(chǎn)環(huán)境:https://bit.dev/

          以下是作為 bit 組件共享的 GraphQL API 示例:

          • 示例一:

            https://hackernoon.com/make-your-graphql-api-easier-to-adopt-through-components-74b022f195c1,任何人都可以下載這些組件,根據(jù)需要修改內(nèi)容,并用到他們自己的環(huán)境中。因?yàn)橄M(fèi)端可以直接在他們自己的項(xiàng)目里更改代碼,所以它是最易用的 API 集成了。

          • 示例二:

            https://bit.dev/giladshoham/github-graphql

          • 示例三:

            https://bit.dev/mui-org/material-ui

          將 React UI 組件作為 bit 組件集合。從自己的項(xiàng)目中直接查看、使用并開發(fā)各個組件。使用 Bit 可以非常輕松地將你自己的組件轉(zhuǎn)換為這樣的共享集合。

          轉(zhuǎn)換成 Bit 的 React 組件:方便在不同應(yīng)用間分享、開發(fā)和同步

          [Bit] Github 地址:

          https://github.com/teambit/bit

          3. Relay
          import {graphql} from 'react-relay';graphql`query MyQuery {viewer {id}}`;

          Relay 是一個由 Facebook 構(gòu)建的 JavaScript 框架,用作使用 GraphQL 的應(yīng)用的高性能、可擴(kuò)展的基礎(chǔ)架構(gòu)。

          Relay 是 React 和 GraphQL 之間的橋梁,利用了 React 的基于組件的封裝特性。組件可以通過 Relay 指定并獲取自己需要的數(shù)據(jù),這樣各個組件所需的應(yīng)用數(shù)據(jù)就都下到了組件本地,方便組件組合??梢圆榭聪嚓P(guān)博客了解更多信息:https://blog.bitsrc.io/apollo-and-relay-side-by-side-adb5e3844935

          Relay 的聲明性方法讓用戶可以使用 GraphQL 聲明數(shù)據(jù)需求,然后 Relay 負(fù)責(zé)提取數(shù)據(jù);它會將查詢聚合到網(wǎng)絡(luò)請求中,這樣可以只提取你需要的數(shù)據(jù)。Relay 可以使用 GraphQL 突變在客戶端和服務(wù)器上突變數(shù)據(jù),同時具備自動數(shù)據(jù)一致性、優(yōu)化更新和錯誤處理能力。

          雖然 Relay 沒有 Apollo 這樣的競爭者受歡迎,但 Facebook 還是推出了 relay-modern,加入了更好的變異 API、QueryRenderer 改進(jìn),可選路由等改進(jìn)。可以在此查看詳情:

          https://facebook.github.io/relay/docs/en/new-in-relay-modern.html

          [Relay] Github 地址:

          https://github.com/facebook/relay

          4. Prisma


          Prisma 是一個獲得了 15000 星的“數(shù)據(jù)庫工具,包括 ORM、遷移和管理 UI(Postgres、MySQL 和 MongoDB)“。簡而言之,Prisma 旨在取代傳統(tǒng)的 ORM 并簡化數(shù)據(jù)庫工作流程。借助 GraphQL,Prisma 可以輕松實(shí)現(xiàn)彈性、符合生產(chǎn)需求的 GraphQL 服務(wù)器,還有隨時可用的預(yù)制 CRUD 操作、高性能的查詢解析引擎、兼容 Apollo(客戶端和服務(wù)器)、類型安全的解析器等等。

          這是一個使用 Prisma 實(shí)現(xiàn)的 GraphQL 服務(wù)器的示例,它基于 Prisma 團(tuán)隊(duì)開發(fā)的兩個更優(yōu)秀的項(xiàng)目:GraphQL Yoga——功能齊全的 GraphQL 服務(wù)器,專注于簡單的設(shè)置、高性能和出色的開發(fā)者體驗(yàn);以及 GraphQL Nexus——一個代碼優(yōu)先 、類型安全的 GraphQL Schema 構(gòu)造。

          相關(guān)鏈接:

          • [Prisma] Github 地址:

            https://github.com/prisma/prisma

          • GraphQL 服務(wù)器示例:

            https://github.com/prisma/prisma-examples/tree/master/typescript/graphql

          • GraphQL Yoga:

            https://github.com/prisma/graphql-yoga

          • GraphQL Nexus:

            https://github.com/prisma/nexus

          5. GraphiQL

          寫這篇調(diào)查之前我就從很多朋友那里聽說過這個項(xiàng)目。它已經(jīng)拿了 8 千 星,給自己的定義是“用于探索 GraphQL 的瀏覽器內(nèi) IDE”。用戶可以通過 GraphiQL 從 GraphQL 服務(wù)器獲取 Schema 定義,然后就可以開始工作了。

          這個 IDE 帶有語法高亮,字段、參數(shù)和類型前的智能類型,文檔資源管理器,實(shí)時錯誤高亮和報(bào)告,自動查詢完成以及運(yùn)行和檢查查詢結(jié)果的工具。你可以使用 Webpack 和 Brwoserify 為 Web 做開發(fā),或使用預(yù)打包的版本。這里還有一個動態(tài)演示:

          https://graphql.github.io/swapi-graphql/

          [graphiql] Github 地址:

          https://github.com/graphql/graphiql

          6. GrahpQL 編輯器

          如你想象,這是一個可視化的節(jié)點(diǎn)編輯器,幫助用戶更容易地理解 GrapHQL schema。你可以把可視節(jié)點(diǎn)組合在一起來創(chuàng)建 schema,GraphQL 編輯器會將它們自動轉(zhuǎn)換為代碼。優(yōu)缺點(diǎn)先不談,這的確是一個“無代碼解決方案”,可幫助用戶以可視化方式快速構(gòu)建系統(tǒng)架構(gòu)原型。它甚至還帶有開箱即用的后端模擬,上手就能用。

          [GrahpQL 編輯器] Github 地址:

          https://github.com/slothking-online/graphql-editor

          7. GraphQL Playground

          這是另一款流行的 GraphQL IDE,可以很好地管理訂閱、文檔和協(xié)作。它有桌面應(yīng)用和 Web 端兩種版本,提供上下文感知、自動完成和錯誤高亮、交互式多列文檔、實(shí)時 GraphQL 訂閱、有多個項(xiàng)目和端點(diǎn)的配置支持,甚至支持 Apollo 追蹤等功能。

          它使用了 GraphiQL 中一些的組件,又引入了交互式、多列模式文檔和自動重載、查詢歷史記錄、HTTP 標(biāo)頭和選項(xiàng)卡的配置等新功能。新學(xué)一個 IDE 不容易,但這款 IDE 能為資深用戶節(jié)約大量時間。

          [GraphQL Playground] Github 地址:

          https://github.com/prisma/graphql-playground

          8. Altair

          Altair 是一個“graphQL 客戶端,用于對 graphQL 服務(wù)器進(jìn)行 graphQL 查詢——類似 Postman,但 Altair 是為 GraphQL 服務(wù)的”。用戶可以使用 Altair 添加、編輯和刪除用于發(fā)出請求的 HTTP 標(biāo)頭,包括需要授權(quán)訪問請求的身份驗(yàn)證令牌頭。

          它還允許你將 GraphQL 變量添加到請求中,以便在查詢中方便地使用動態(tài)值。它的響應(yīng)狀態(tài)信息顯示可幫助用戶了解請求的時長,其他功能包括 schema 文檔顯示、語法高亮等。

          [Altair] GitHub 地址:

          https://github.com/imolorhe/altair

          9. GraphQL Voyager

          GraphQL Voyager 可將任何 GraphQL API 表示為交互式可視化圖形,包括這些公共 GraphQL API:

          https://github.com/APIs-guru/graphql-apis

          它提供了圖表的快速導(dǎo)航,左側(cè)面板提供了有關(guān)每種類型的更多詳細(xì)信息,“跳過 Relay”選項(xiàng)通過刪除 Relay 包裝類來簡化圖形,并且可以選擇任何類型作為圖形的根。

          [GraphQL Voyager] Github 地址:

          https://github.com/APIs-guru/graphql-voyager

          10. URQL

          Formidable 實(shí)驗(yàn)室構(gòu)建的 urqle 是“React 的高度可定制和多功能的 GraphQL 客戶端”。這個 GraphQL 客戶端暴露了一組 React 組件和 hook,也像 Apollo 一樣,可以和 Bit 搭配出強(qiáng)大的組合。這個項(xiàng)目的宗旨是減少客戶端的空間占用,并創(chuàng)建一個可以擴(kuò)展的輕量庫。

          它的主要理念是在簡單和復(fù)雜之間取得平衡,提供數(shù)據(jù)存儲、緩存、上下文靈活性等便利??稍诖颂幜私飧嘈畔ⅲ?/p>

          https://github.com/FormidableLabs/urql/blob/master/docs/architecture.md

          用戶甚至可以自行擴(kuò)展:

          https://github.com/FormidableLabs/urql/blob/master/docs/extending-and-experimenting.md

          Formidable 實(shí)驗(yàn)室:

          https://medium.com/@Formidable

          [URQL] Github 地址:

          https://github.com/FormidableLabs/urql

          11. AWS Amplify 客戶端

          AWS 為使用云服務(wù)的應(yīng)用開發(fā)提供的聲明性 JavaScript 庫附帶了一個 GraphQL 客戶端,它易于使用和配置,可用來與 GraphQL 服務(wù)器或 AWS AppSync API 交互。

          這個 API 類別提供了向 REST 和 GraphQL 端點(diǎn)發(fā)出 HTTP 請求的解決方案。它帶有 AWS 簽名 4.0 版簽名類,會自動簽名所有 AWS API 請求,以及使用 API密鑰、Amazon Cognito 用戶池或第三方 OIDC 提供商的方法。AWS Amplify API 模塊支持 AWS AppSync 或其他所有 GraphQL 后端。

          [AWS Amplify 客戶端] Github 地址:

          https://github.com/aws-amplify/amplify-js

          12. GraphQL Hooks

          Graphql-hooks 是為 React 準(zhǔn)備的微型 hooks 優(yōu)先 GraphQL 客戶端。它支持自定義緩存插件、服務(wù)器端渲染,只需極少配置就能快速啟動和運(yùn)行。它只有 5.2KB(壓縮后 1.9KB)大小,甚至支持服務(wù)器端渲染。

          服務(wù)器端渲染:

          https://github.com/nearform/graphql-hooks/tree/master/packages/graphql-hooks-ssr

          [Graphql-hooks]  Github 地址:

          https://www.nearform.com/blog/introducing-graphql-hooks/

          13. Express GraphQL

          最后是 express-graphql。這個庫允許用戶使用 Express 創(chuàng)建 GraphQL HTTP 服務(wù)器(也適用于 connect 和 Restify)。默認(rèn)情況下,express 請求作為 GraphQL context 傳遞,這意味著你可以在掛載 graphqlHTTP 之前插入大多數(shù)快速中間件,以支持對用戶身份驗(yàn)證、處理上載或在動態(tài)端點(diǎn)上掛載 GraphQL 等使用場景。如果你在使用 Express,它應(yīng)該很適合你。

          [Express GraphQL] GitHub 地址:

          https://github.com/graphql/express-graphql

          原文鏈接:

          https://blog.bitsrc.io/13-graphql-tools-and-libraries-you-should-know-in-2019-e4b9005f6fc2

          本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
          打開APP,閱讀全文并永久保存 查看更多類似文章
          猜你喜歡
          類似文章
          GraphQL最突出的架構(gòu)優(yōu)勢是什么?
          給 Web 開發(fā)人員推薦的文檔生成工具
          2020年Web前端需要掌握的10個關(guān)鍵技能
          開源配置中心Apollo的設(shè)計(jì)與實(shí)現(xiàn)
          基于Python的開源量化交易平臺及組件匯總
          推薦 10 款常用的富文本編輯器
          更多類似文章 >>
          生活服務(wù)
          分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
          綁定賬號成功
          后續(xù)可登錄賬號暢享VIP特權(quán)!
          如果VIP功能使用有故障,
          可點(diǎn)擊這里聯(lián)系客服!

          聯(lián)系客服