nuxt-graphql-middleware
nuxt-graphql-middleware

將 GraphQL 查詢和變更作為伺服器 API 路由公開。

nuxt-graphql-middleware banner

nuxt-graphql-middleware

一個適用於 Nuxt 3 的 GraphQL 客戶端。

文件npm版本 2.x (適用於 Nuxt 2)

Test

功能

  • 將每個查詢和變更公開為 API 路由
  • GraphQL 請求僅在伺服器端完成
  • 包含用於執行查詢或變更的 composables
  • 客戶端包中沒有 GraphQL 文件
  • 使用 graphql-typescript-deluxe 實現超快的 TypeScript 程式碼生成
  • 所有 GraphQL 檔案的 HMR
  • 查詢操作的可選客戶端快取
  • 修改請求頭、響應並處理錯誤
  • Nuxt DevTools 整合

設定

安裝

npx nuxi@latest module add nuxt-graphql-middleware

所需配置最少

export default defineNuxtConfig({
  modules: ['nuxt-graphql-middleware'],
  graphqlMiddleware: {
    graphqlEndpoint: 'https://example.com/graphql',
  },
})

檢視所有配置選項

使用

編寫您的第一個查詢,例如在 pages/films.query.graphql 中

query films {
  allFilms {
    films {
      id
    }
  }
}

您的查詢現在可以透過 useGraphqlQuery() composable 使用

const { data, errors } = await useGraphqlQuery('films')
console.log(data.allFilms.films)

或者使用 useAsyncData 的便捷封裝器

const { data } = await useAsyncGraphqlQuery('films')
console.log(data.value.allFilms.films)

或者您也可以直接呼叫 API 路由以獲得相同的結果

const response = await $fetch('/api/graphql_middleware/query/films')

或者使用 useFetch

const { data } = await useFetch('/api/graphql_middleware/query/films')

Nuxt 2

3.x 版本僅與 Nuxt 3 相容。2.x 分支和 npm 上的釋出與 Nuxt 2 相容。但此版本不再維護。

開發

該模組使用預設的 Nuxt 模組編寫設定,其中模組本身位於 ./src,一個 playground 位於 ./playground/

設定

安裝依賴項

安裝模組和 playground 的依賴項

npm install

準備型別

這將生成開始開發所需的所有型別

npm run dev:prepare

啟動 Apollo Server

playground 使用的 Apollo 伺服器需要單獨構建。

cd apollo
npm install
npm run compile
npm run start

啟動 Playground

npm run dev

您現在可以開啟 https://:3000 開始開發。

測試

Lint / 程式碼風格

npm run lint
npm run prettier

單元測試 (Vitest)

單元測試使用 Vitest 完成。

npm run test:ci

端到端測試 (Cypress)

我們使用 Cypress 執行一些端到端測試。測試是針對 playground 構建版本執行的。

npm run dev:build
npm run dev:start
npm run cypress