首頁  >  文章  >  web前端  >  GraphQL

GraphQL

PHPz
PHPz原創
2024-08-10 16:38:03604瀏覽

GraphQL

什麼是 GraphQL?

GraphQL 是一種強大的 API 查詢語言,也是使用資料執行這些查詢的執行時間。 GraphQL 由 Facebook 於 2012 年開發,並於 2015 年作為開源專案發布,它允許客戶準確地要求他們需要的資料——不多也不少。

主要特點:

  • 單一端點:與通常使用多個端點的 REST 不同,GraphQL 對所有請求使用單一端點。
  • 靈活的查詢:客戶端可以在單一查詢中僅請求他們需要的特定資料。
  • 強型別:模式定義 API 中的型別和關係,確保強大的資料驗證和內省。

GraphQL 與 REST 有何不同

1。資料取得:

  • REST:需要多個端點才能取得相關資料。例如,您可能需要點擊 /users,然後點擊 /users/{id}/posts。
  • GraphQL:允許在單一查詢中取得所有必需的資料。您可以透過一次請求獲取用戶詳細資訊及其貼文。

2。過度取得與不足取得:

  • REST:經常傳回超出需要的資料(過度取得)或需要額外的請求來取得更多資料(取得不足)。
  • GraphQL:客戶端準確指定他們需要的數據,消除過度獲取和獲取不足的情況。

3。版本控制:

  • REST:API 版本可能需要更新(例如,/v1/users 到 /v2/users)。
  • GraphQL:無需版本控制即可發展。可以新增欄位和類型,而不會破壞現有查詢。

基本 GraphQL 查詢範例

以下是編寫 GraphQL 查詢來取得使用者資訊的方法:

query {
  user(id: "1") {
    name
    email
    posts {
      title
      content
    }
  }
}

在此查詢中:

  • user(id: "1") 指定取得 ID 為 1 的使用者。
  • 請求巢狀欄位名稱、電子郵件和貼文。
  • 貼文包含子欄位標題和內容,允許嵌套資料結構。

設定簡單的 GraphQL 伺服器

要開始使用 GraphQL,讓我們使用 Node.js 和 Apollo Server 設定一個基本伺服器。

1。安裝依賴項:

npm install apollo-server graphql

2。建立基本伺服器:

建立一個名為index.js的檔案並加入以下程式碼:

const { ApolloServer, gql } = require('apollo-server');

// Define your type definitions
const typeDefs = gql`
  type Post {
    title: String
    content: String
  }

  type User {
    name: String
    email: String
    posts: [Post]
  }

  type Query {
    user(id: String!): User
  }
`;

// Define your resolvers
const resolvers = {
  Query: {
    user: (_, { id }) => ({
      name: "John Doe",
      email: "john.doe@example.com",
      posts: [
        { title: "GraphQL Basics", content: "Learning GraphQL is fun!" }
      ]
    }),
  },
};

// Create an Apollo Server instance
const server = new ApolloServer({ typeDefs, resolvers });

// Start the server
server.listen().then(({ url }) => {
  console.log(`? Server ready at ${url}`);
});

3。運作伺服器:

node index.js

您的伺服器現在將運行,您可以使用 GraphiQL(可在 http://localhost:4000 取得)或任何 GraphQL 用戶端對其進行測試。

為什麼要使用 GraphQL?

  • 高效率資料載入:準確要求您需要的內容,減少不必要的資料傳輸。
  • 架構與型別安全:有效執行資料結構並驗證資料。
  • 開發者體驗:GraphiQL 和 Apollo Client 等工具透過自動完成和文件等功能提高工作效率。

立即開始使用 GraphQL!

透過使用 GraphQL,您可以建立更有效率、靈活且可擴展的 API。請繼續關注下週,我們將深入探討模式設計和突變等高級 GraphQL 主題。

以上是GraphQL的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn