GraphQL ロゴGraphQL

コード

GraphQL を使用して

GraphQL は通信パターンであるため、あらゆる種類の言語で GraphQL をサポートする、作業開始を支援する多くのツールがあります。

こちらをご覧ください

言語サポート

並べ替え

サーバー

GraphQL.js

最終リリース6ヶ月前
スター20k
ライセンスMITライセンス

Node.js 環境で GraphQL を実行するように設計された、GraphQL 仕様のリファレンス実装です。

コマンドラインから `GraphQL.js` の hello world スクリプトを実行するには

npm install graphql

次に、`hello.js` に次のコードを記述して `node hello.js` を実行します。

var { graphql, buildSchema } = require("graphql")
var schema = buildSchema(`
type Query {
hello: String
}
`)
var rootValue = { hello: () => "Hello world!" }
var source = "{ hello }"
graphql({ schema, source, rootValue }).then(response => {
console.log(response)
})

graphql-yoga

最終リリース1週間前
スター8k
ライセンスMITライセンス

GraphQL Yoga は、Envelop と GraphQL Tools を使用した、HTTP 仕様準拠のクロスプラットフォーム GraphQL サーバーです。

  • Fetch API の `Request` と `Response` オブジェクトを基盤として構築されています。
  • GraphQL over HTTP 準拠
  • Envelop によって強化された拡張可能な GraphQL エンジン
  • HTTP 上の GraphQL サブスクリプション
  • GraphQL でファイルアップロードを処理します。
  • AWS Lambda、Cloudflare Workers、Deno、Express、Next.js、SvelteKit などと統合します。

graphql-yoga で hello world サーバーを実行するには

npm install graphql-yoga graphql

次に、`createServer` インポートを使用してサーバーを作成します。

import { createServer } from "http"
import { createSchema, createYoga } from "graphql-yoga"
createServer(
createYoga({
schema: createSchema({
typeDefs: /* GraphQL */ `
type Query {
hello: String
}
`,
resolvers: {
Query: {
hello: () => "Hello Hello Hello",
},
},
}),
})
).listen(4000, () => {
console.info("GraphQL Yoga is listening on http://localhost:4000/graphql")
})

展開ターゲットによっては、追加のライブラリが必要になる場合があります。詳細は ドキュメント を参照してください。

Mercurius

最終リリース1日前
スター2k
ライセンスMITライセンス

Mercurius は、オーバーヘッドが最小限で強力なプラグインアーキテクチャを備えた、非常に高速な Web フレームワークである Fastify のための柔軟で拡張可能な GraphQL アダプターです。

`mercurius` で hello world スクリプトを実行するには

npm install fastify mercurius

次に、`app.js` に次のコードを記述して `node app.js` を実行します。

const Fastify = require("fastify")
const mercurius = require("mercurius")
const schema = `
type Query {
hello(name: String): String!
}
`
const resolvers = {
Query: {
hello: async (_, { name }) => `hello ${name || "world"}`,
},
}
const app = Fastify()
app.register(mercurius, {
schema,
resolvers,
})
app.listen(3000)
// Call IT!
// curl 'http://localhost:3000/graphql' \
// -H 'content-type: application/json' \
// --data-raw '{"query":"{ hello(name:\"Marcurius\") }" }'

GraphQL-WS

最終リリース1ヶ月前
スター2k
ライセンスMITライセンス

一貫性があり、依存関係がなく、遅延評価され、シンプルで、WebSocket プロトコル準拠の GraphQL サーバーおよびクライアントです。

Apollo Server

最終リリース2週間前
スター14k
ライセンスMITライセンス

任意の Node.js HTTP フレームワークで動作する Apollo 製の GraphQL サーバーです。

Apollo Server で hello world サーバーを実行するには

npm install @apollo/server graphql

次に、`server.js` に次のコードを記述して `node server.js` を実行します。

import { ApolloServer } from "@apollo/server"
import { startStandaloneServer } from "@apollo/server/standalone"
const server = new ApolloServer({
typeDefs,
resolvers,
})
const { url } = await startStandaloneServer(server)
console.log(`🚀 Server ready at ${url}`)

Apollo Server は、組み込みのスタンドアロン HTTP サーバーと Express 用のミドルウェアを備えており、コミュニティによる統合を通じて、すべての Node.js HTTP サーバーフレームワークとサーバーレス環境 をサポートするフレームワーク統合 API を備えています。

Apollo Server は プラグイン API、Apollo Studio との統合、および キャッシング自動永続クエリCSRF 対策 などのパフォーマンスとセキュリティ機能を備えています。

GraphQL-SSE

最終リリース3ヶ月前
スター362
ライセンスMITライセンス

依存関係がなく、HTTP/1 セーフ、シンプルで、Server-Sent Events プロトコル準拠の GraphQL サーバーおよびクライアントです。

GraphQL-HTTP

最終リリース6ヶ月前
スター272
ライセンスMITライセンス

シンプルで、プラグイン可能で、依存関係がなく、HTTP 仕様準拠の GraphQL サーバー、クライアント、および監査スイートです。

GraphQLBox サーバー

スター23
ライセンスMITライセンス

キャッシング、リクエスト解析、デバッグ、サブスクリプションなどのモジュールを備えた、拡張可能な GraphQL サーバーです。

以下の例では、永続化されたキャッシュとデバッグを有効にして GraphQLBox サーバーをインストールおよび初期化します。

npm install @graphql-box/core @graphql-box/server @graphql-box/client @graphql-box/request-parser @graphql-box/cache-manager @graphql-box/debug-manager @graphql-box/execute @graphql-box/helpers @cachemap/core @cachemap/reaper @cachemap/redis @cachemap/constants @cachemap/types
import Cachemap from "@cachemap/core"
import redis from "@cachemap/redis"
import reaper from "@cachemap/reaper"
import CacheManager from "@graphql-box/cache-manager"
import Client from "@graphql-box/client"
import DebugManager from "@graphql-box/debug-manager"
import Execute from "@graphql-box/execute"
import RequestParser from "@graphql-box/request-parser"
import Server from "@graphql-box/server"
import { makeExecutableSchema } from "@graphql-tools/schema"
import { performance } from "perf_hooks"
import { schemaResolvers, schemaTypeDefs } from "./schema"
import logger from "./logger"
const schema = makeExecutableSchema({
typeDefs: schemaTypeDefs,
resolvers: schemaResolvers,
})
const server = new Server({
client: new Client({
cacheManager: new CacheManager({
cache: new Cachemap({
name: "server-cache",
reaper: reaper({ interval: 300000 }),
store: redis(/* configure */),
}),
cascadeCacheControl: true,
typeCacheDirectives: {
// Add any type specific cache control directives in the format:
// TypeName: "public, max-age=3",
},
}),
debugManager: new DebugManager({
environment: "server",
log: (...args) => {
logger.log(...args)
},
name: "SERVER",
performance,
}),
requestManager: new Execute({ schema }),
requestParser: new RequestParser({ schema }),
}),
})
// Meanwhile... somewhere else in your code
app.use("api/graphql", graphqlServer.request())

クライアント

Apollo Client

最終リリース1日前
スター19k
ライセンスMITライセンス

React、React Native、Angular 2、またはプレーンな JavaScript でうまく動作するように設計された、強力な JavaScript GraphQL クライアントです。

urql

最終リリース1週間前
スター8k
ライセンスMITライセンス

高度にカスタマイズ可能で汎用性の高い GraphQL クライアントで、成長に合わせて正規化されたキャッシングなどの機能を追加できます。

`urql` は、いくつかのフレームワーク用のヘルパーのセットを公開する GraphQL クライアントです。高度にカスタマイズ可能で汎用性が高いため、最初の GraphQL プロジェクトの開始から、複雑なアプリの構築や GraphQL クライアントの実験まで、幅広く使用できます。

  • 現在、React、React Native、Preact、Svelte、Vue をサポートしており、GraphQL Code Generator によってサポートされています。
  • 論理的でシンプルなデフォルトの動作とドキュメントキャッシュ、および `@urql/exchange-graphcache` を介した正規化されたキャッシュ。
  • "exchange"(アドオンパッケージ)による完全にカスタマイズ可能な動作。

Relay

最終リリース1ヶ月前
スター18k
ライセンスMITライセンス

GraphQL バックエンドと通信する React アプリケーションを構築するための Facebook のフレームワークです。

Relay は、データ駆動型の React アプリケーションを構築するための JavaScript フレームワークです。

  • 宣言型: 命令型の API を使用してデータストアと通信することはなくなりました。GraphQL を使用してデータの要件を宣言するだけで、Relay がデータの取得方法とタイミングを判断します。
  • 共存: クエリは、それに依存するビューの隣に存在するため、アプリを簡単に推論できます。Relay はクエリを効率的なネットワークリクエストに集約し、必要なものだけを取得します。
  • ミューテーション: Relay を使用すると、GraphQL ミューテーションを使用してクライアントとサーバーでデータを変更でき、自動的なデータ整合性、楽観的更新、エラー処理を提供します。

独自のプロジェクトで Relay を使用する方法をご覧ください。.

GraphQL Request

最終リリース3年前
スター6k
ライセンスMITライセンス

すべての JavaScript 環境(ブラウザー、Node.js、React Native)で動作する、シンプルで柔軟な JavaScript GraphQL クライアントです。基本的には `fetch` の軽量ラッパーです。

AWS Amplify

最終リリース19時間前
スター9k
ライセンスApache License 2.0

クラウドサービスを使用したアプリケーション開発のための JavaScript ライブラリで、GraphQL バックエンドと、GraphQL データを操作するための React コンポーネントをサポートしています。

graphqurl

スター3k
ライセンスApache License 2.0

オートコンプリート、サブスクリプション、GraphiQL を備えた GraphQL 用の curl です。非常にシンプルなユニバーサル JavaScript GraphQL クライアントでもあります。

GraphQL-WS

最終リリース1ヶ月前
スター2k
ライセンスMITライセンス

一貫性があり、依存関係がなく、遅延評価され、シンプルで、WebSocket プロトコル準拠の GraphQL サーバーおよびクライアントです。

graphql-hooks

最終リリース2ヶ月前
スター2k
ライセンスその他

小さなバンドル、SSR サポート、キャッシングを備えた、最小限の React フックファースト GraphQL クライアントです。

  • 🥇 ファーストクラスフック API
  • ⚖️ 小さなバンドル: わずか 7.6kB(圧縮時 2.8kB)
  • 📄 完全な SSR サポート: graphql-hooks-ssr を参照してください。
  • 🔌 プラグインキャッシング: graphql-hooks-memcache を参照してください。
  • 🔥 レンダープロップスの地獄はもう終わり
  • ⏳ 読み込み中とエラーの状態を簡単に処理

クイックスタート#

npm install graphql-hooks

最初に、クライアントを作成し、プロバイダーでアプリをラップする必要があります。

import { GraphQLClient, ClientContext } from "graphql-hooks"
const client = new GraphQLClient({
url: "/graphql",
})
function App() {
return (
<ClientContext.Provider value={client}>
{/* children */}
</ClientContext.Provider>
)
}

これで、子コンポーネントでuseQueryを使用できます。

import { useQuery } from "graphql-hooks"
const HOMEPAGE_QUERY = `query HomePage($limit: Int) {
users(limit: $limit) {
id
name
}
}`
function MyComponent() {
const { loading, error, data } = useQuery(HOMEPAGE_QUERY, {
variables: {
limit: 10,
},
})
if (loading) return "Loading..."
if (error) return "Something Bad Happened"
return (
<ul>
{data.users.map(({ id, name }) => (
<li key={id}>{name}</li>
))}
</ul>
)
}

Lokka

スター2k
ライセンスMITライセンス

すべてのJavaScript環境(ブラウザー、Node.js、React Native)で動作する、シンプルなJavaScript GraphQLクライアントです。

nanogql

スター422
ライセンスMITライセンス

テンプレート文字列を使用する小さなGraphQLクライアントライブラリです。

GraphQL-SSE

最終リリース3ヶ月前
スター362
ライセンスMITライセンス

依存関係がなく、HTTP/1 セーフ、シンプルで、Server-Sent Events プロトコル準拠の GraphQL サーバーおよびクライアントです。

GraphQL-HTTP

最終リリース6ヶ月前
スター272
ライセンスMITライセンス

シンプルで、プラグイン可能で、依存関係がなく、HTTP 仕様準拠の GraphQL サーバー、クライアント、および監査スイートです。

graphql-ts-client

最終リリース3ヶ月前
スター142
ライセンスMITライセンス

TypeScript用のGraphQLクライアントで、強く型付けされたクエリ要求に従って、返されるデータの型を自動的に推論します。

GraphQLBoxクライアント

スター23
ライセンスMITライセンス

React、キャッシング、リクエスト解析、Webワーカー、Webソケットなどに対応した、拡張可能なGraphQLクライアントです。

以下の例では、永続化されたキャッシュとデバッグを有効にしてGraphQLBoxクライアントをインストールおよび初期化します。

npm install @graphql-box/core @graphql-box/client @graphql-box/request-parser @graphql-box/cache-manager @graphql-box/debug-manager @graphql-box/fetch-manager @graphql-box/helpers @cachemap/core @cachemap/reaper @cachemap/indexed-db @cachemap/constants @cachemap/types
import Cachemap from "@cachemap/core"
import indexedDB from "@cachemap/indexed-db"
import reaper from "@cachemap/reaper"
import CacheManager from "@graphql-box/cache-manager"
import Client from "@graphql-box/client"
import DebugManager from "@graphql-box/debug-manager"
import FetchManager from "@graphql-box/fetch-manager"
import RequestParser from "@graphql-box/request-parser"
import introspection from "./introspection-query"
const requestManager = new FetchManager({
apiUrl: "/api/graphql",
batchRequests: true,
logUrl: "/log/graphql",
})
const client = new Client({
cacheManager: new CacheManager({
cache: new Cachemap({
name: "client-cache",
reaper: reaper({ interval: 300000 }),
store: indexedDB(/* configure */),
}),
cascadeCacheControl: true,
typeCacheDirectives: {
// Add any type specific cache control directives in the format:
// TypeName: "public, max-age=3",
},
}),
debugManager: new DebugManager({
environment: "client",
log: (message, data, logLevel) => {
requestManager.log(message, data, logLevel)
},
name: "CLIENT",
performance: self.performance,
}),
requestManager,
requestParser: new RequestParser({ introspection }),
})
// Meanwhile... somewhere else in your code
const { data, errors } = await client.request(queryOrMutation)

Grafoo

最終リリース5年前
スター274
ライセンスMITライセンス

わずか1.6kbで複数のフレームワークのビューレイヤー統合を備えた、汎用GraphQLクライアントです。

gq-loader

スター59
ライセンス不明

シンプルなJavaScript GraphQLクライアントで、*.gqlファイルをwebpack loaderを通してモジュールとして使用できます。

ツール

SpectaQL

スター1k
ライセンスMITライセンス

SpectaQLは、GraphQLスキーマから静的なHTMLドキュメントを生成します。

SpectaQLは、様々なオプションを使用してGraphQLスキーマの静的ドキュメントを生成するNode.jsライブラリです。

  • イントロスペクションクエリを使用してライブエンドポイントから生成します。
  • イントロスペクションクエリ結果を含むファイルから生成します。
  • SDLでスキーマ定義へのパスを指定するファイル、複数のファイル、またはglobパターンから生成します。

SpectaQLは、すぐに使用できる3カラムのHTMLページを生成し、いくつかのビルトインテーマから選択できます。このプロジェクトの主な目標は、簡単かつ非常にカスタマイズしやすいことです。テーマを設定でき、ほぼすべてをオーバーライドまたはカスタマイズできます。

npm install --dev spectaql
# OR
yarn add -D spectaql
# Then generate your docs
npm run spectaql my-config.yml
# OR
yarn spectaql my-config.yml

Postgraphile

最終リリース5ヶ月前
スター12k
ライセンスその他

PostgreSQLスキーマから、強力で拡張性があり、パフォーマンスの高いGraphQL APIを数秒で構築します。これにより、数週間から数ヶ月もの開発時間を節約できます。

GraphQL Code Generator

最終リリース3週間前
スター11k
ライセンスMITライセンス

Typescript(フロントエンドとバックエンド)、React Hooks、リゾルバーシグネチャなど、カスタムプラグインとテンプレートを柔軟にサポートするGraphQLコードジェネレーターです。

GraphQL Tools

最終リリース1日前
スター5k
ライセンスMITライセンス

GraphQLツールの開発を高速化するためのユーティリティのセットです(スキーマとドキュメントの読み込み、スキーマのマージなど)。

GraphiQL

最終リリース2週間前
スター16k
ライセンスMITライセンス

インタラクティブなブラウザ内GraphQL IDEです。

GraphQLShield

最終リリース1年前
スター4k
ライセンスMITライセンス

パーミッションレイヤーの作成を容易にするGraphQLツールです。

GraphQL Shieldは、アプリケーションのパーミッションレイヤーの作成を支援します。直感的なルールAPIを使用することで、すべてのリクエストでシールドエンジンのパワーを活用し、スマートキャッシングにより各リクエストのロード時間を短縮できます。これにより、アプリケーションの高速性を維持し、内部データが公開されないようにすることができます。

import { rule, shield, and, or, not } from "graphql-shield"
// Rules
const isAuthenticated = rule({ cache: "contextual" })(
async (parent, args, ctx, info) => {
return ctx.user !== null
}
)
const isAdmin = rule({ cache: "contextual" })(
async (parent, args, ctx, info) => {
return ctx.user.role === "admin"
}
)
const isEditor = rule({ cache: "contextual" })(
async (parent, args, ctx, info) => {
return ctx.user.role === "editor"
}
)
// Permissions
const permissions = shield({
Query: {
frontPage: not(isAuthenticated),
fruits: and(isAuthenticated, or(isAdmin, isEditor)),
customers: and(isAuthenticated, isAdmin),
},
Mutation: {
addFruitToBasket: isAuthenticated,
},
Fruit: isAuthenticated,
Customer: isAdmin,
})
// Server
const server = new GraphQLServer({
typeDefs,
resolvers,
middlewares: [permissions],
context: req => ({
...req,
user: getUser(req),
}),
})

GraphQL Scalars

最終リリース2日前
スター2k
ライセンスMITライセンス

正確で型安全なGraphQLスキーマを作成するための、カスタムGraphQLスカラー型のライブラリです。

GraphQL Modules

最終リリース4ヶ月前
スター1k
ライセンスMITライセンス

GraphQL Modulesを使用すると、バックエンドの実装を小さく、再利用可能で、実装とテストが容易なピースに分割できます。

GraphQLMiddleware

最終リリース8ヶ月前
スター1k
ライセンスMITライセンス

GraphQLリゾルバーをミドルウェア関数に分割します。

GraphQL Middlewareは、複数のリゾルバー間で追加の機能を効率的に管理できるスキーマラッパーです。

機能#

💡使いやすさ:直感的で使い慣れたAPIで、すぐに使いこなせます。 💪 充実した機能:リゾルバーを完全に制御できます(Before、After)。 🌈互換性:あらゆるGraphQLスキーマと連携します。

#

const { ApolloServer } = require("apollo-server")
const { makeExecutableSchema } = require("@graphql-tools/schema")
const typeDefs = `
type Query {
hello(name: String): String
bye(name: String): String
}
`
const resolvers = {
Query: {
hello: (root, args, context, info) => {
console.log(`3. resolver: hello`)
return `Hello ${args.name ? args.name : "world"}!`
},
bye: (root, args, context, info) => {
console.log(`3. resolver: bye`)
return `Bye ${args.name ? args.name : "world"}!`
},
},
}
const logInput = async (resolve, root, args, context, info) => {
console.log(`1. logInput: ${JSON.stringify(args)}`)
const result = await resolve(root, args, context, info)
console.log(`5. logInput`)
return result
}
const logResult = async (resolve, root, args, context, info) => {
console.log(`2. logResult`)
const result = await resolve(root, args, context, info)
console.log(`4. logResult: ${JSON.stringify(result)}`)
return result
}
const schema = makeExecutableSchema({ typeDefs, resolvers })
const schemaWithMiddleware = applyMiddleware(schema, logInput, logResult)
const server = new ApolloServer({
schema: schemaWithMiddleware,
})
await server.listen({ port: 8008 })

GraphQL Mesh

最終リリース3分前
スター3k
ライセンスMITライセンス

GraphQL Meshを使用すると、GraphQLクエリ言語を使用して、GraphQLを実行していないリモートAPI(GraphQLを実行しているAPIも)のデータにアクセスできます。他のサービスへのゲートウェイとして使用したり、リモートAPIからデータを収集するローカルGraphQLスキーマとして実行したりできます。

SOFA

最終リリース2ヶ月前
スター1k
ライセンスMITライセンス

GraphQL APIからREST APIを生成します。

GraphQL Live Query

最終リリース1年前
スター431
ライセンスMITライセンス

任意のGraphQLスキーマまたはトランスポートのためのリアルタイムGraphQL。

IDE向けのGraphQL言語サービス(診断、オートコンプリートなど)を構築するためのインターフェースです。

GraphQL Inspector

最終リリース3ヶ月前
スター2k
ライセンスMITライセンス

スキーマの比較、ドキュメントの検証、破壊的変更の検出、類似型の検出、スキーマカバレッジなどを行います。

GraphQL Config

最終リリース5ヶ月前
スター1k
ライセンスMITライセンス

すべてのGraphQLツールのための1つの構成です(ほとんどのツール、エディター、IDEでサポートされています)。

GraphQL-ESLint

最終リリース6ヶ月前
スター1k
ライセンスMITライセンス

GraphQL-ESLintは、ESLintコアにGraphQL ASTをパーサーとして統合します。

GraphQL-HTTP

最終リリース6ヶ月前
スター272
ライセンスMITライセンス

シンプルで、プラグイン可能で、依存関係がなく、HTTP 仕様準拠の GraphQL サーバー、クライアント、および監査スイートです。

Microfiber

スター30
ライセンスMITライセンス

GraphQLイントロスペクションクエリ結果をクエリおよび操作するためのライブラリです。

Microfiberは、

  • 特定のクエリ、ミューテーション、型、フィールド、引数、またはサブスクリプションについて、イントロスペクションクエリ結果を掘り下げることができます。
  • イントロスペクションクエリ結果から、特定のクエリ、ミューテーション、型、フィールド/入力フィールド、引数、またはサブスクリプションを削除できます。
  • イントロスペクションクエリ結果に存在しない、または削除された型を参照するクエリ、ミューテーション、フィールド/入力フィールド、または引数を削除できます。
npm install microfiber
# OR
yarn add microfiber

次にJSで

import { Microfiber } from 'microfiber'
const introspectionQueryResults = {...}
const microfiber = new Microfiber(introspectionQueryResults)
// ...do some things to your schema with `microfiber`
const cleanedIntrospectonQueryResults = microfiber.getResponse()

GraphQL CLI

最終リリース3年前
スター2k
ライセンスMITライセンス

一般的なGraphQL開発ワークフローのためのコマンドラインツールです。

GiraphQL

最終リリース2週間前
スター2k
ライセンスISC License

TypescriptでコードファーストGraphQLスキーマを作成するための、プラグインベースのスキーマビルダーです。

GiraphQLは、型安全なスキーマの作成を簡素化し、コードジェネレーター、ビルドプロセス、または広範な手動型定義なしで動作します。

import { ApolloServer } from "apollo-server"
import SchemaBuilder from "@giraphql/core"
const builder = new SchemaBuilder({})
builder.queryType({
fields: t => ({
hello: t.string({
args: {
name: t.arg.string({}),
},
resolve: (parent, { name }) => `hello, ${name || "World"}`,
}),
}),
})
new ApolloServer({
schema: builder.toSchema({}),
}).listen(3000)

Brangr

最終リリース9ヶ月前
スター1
ライセンスMozilla Public License 2.0

任意のGraphQLサービスのためのユーザーフレンドリーなビューアーです。

Brangr - Browse Any Graph

  • Brangrは、任意の(または複数の)GraphQLサービスのためのユーザーフレンドリーなブラウザ/ビューアーを提供するために、任意のWebサーバーがホストできるシンプルでユニークなツールです。

  • Brangrは、ユーザー設定可能なレイアウトを選択して、GraphQLの結果を魅力的にフォーマットします。ユーザーは生成されたHTMLとそのソースJSONを抽出できます。高度なスキーマブラウザを提供します。ビルトインドキュメントも備えています。

  • Brangrを使用するサイトでは、ユーザーに事前に作成されたGraphQLリクエストのコレクションを提供し、必要に応じて編集したり、独自のREQUESTを作成したりできます。また、フォーマットされた結果のすべての側面に対してカスタムCSSスタイルを定義することもできます。

  • 公開Brangrサイトでお試しください。

query {
heroes(_layout:{type:table}) { # _layout arg not sent to service
first
last
}
}

Brangrは、上記のクエリを次のようにレンダリングします(ただし、引用ブロック内ではありません)。

heroes...
ファーストネームラストネーム
アーサーデント
フォードプリフェクト
ザフォッドビーブルブロックス

サーバー

graphql-go

最終リリース11ヶ月前
スター10k
ライセンスMITライセンス

Go/Golang向けのGraphQLの実装です。

99designs/gqlgen

最終リリース1週間前
スター10k
ライセンスMITライセンス

Go言語ベースのGraphQLサーバーライブラリ。

graph-gophers/graphql-go

最終リリース1年前
スター5k
ライセンスBSD 2-Clause "Simplified" License

使いやすさに重点を置いたGraphQLサーバー。

samsarahq/thunder

スター2k
ライセンスMITライセンス

スキーマ構築が容易で、ライブクエリとバッチ処理に対応したGraphQL実装。

graphql-go-tools

最終リリース5ヶ月前
スター1k
ライセンスMITライセンス

Go言語でGraphQLサーバー、ゲートウェイ、プロキシサーバー、ミドルウェアを構築するためのツールのコレクション。

graphql-go-toolsは、レキシング、パーシング、バリデーション、正規化からクエリプランニングと実行まで、GraphQLサーバー、ゲートウェイ、プロキシサーバーを構築するための基本的なブロックをすべて実装しています。

GraphQLコンパイラと考えることもでき、独自のバックエンドを追加できます。いくつかのインターフェースを実装するだけで、コンパイラに任意のバックエンドとのGraphQL通信方法を教えることができます。

既に実装されているバックエンドは以下の通りです:GraphQL(Apollo Federation / Supergraph対応)。データベース:PostgreSQL、MySQL、SQLite、CockroachDB、MongoDB、SQLServer、OpenAPI / RESTKafka

新しいバックエンドの実装方法を理解するには、最もシンプルな静的データソースを確認してください。

長年にわたり多くの企業のプロダクション環境で使用されており、実戦テスト済みでアクティブにメンテナンスされています。

graphql-relay-go

スター422
ライセンスMITライセンス

react-relayをサポートするgraphql-goサーバーの構築を支援するGo/Golangライブラリ。

appointy/jaal

最終リリース3年前
スター数76
ライセンスMITライセンス

仕様に準拠したGraphQLサーバーをGoで開発します。

EGGQL

スター数32
ライセンスMITライセンス

使いやすく、完全なGoによるGraphQLの実装。シンプルでスキーマレス。

Eggqlの目的は、GraphQLサーバーの作成をできるだけシンプルにすることです。GraphQLスキーマを作成する必要はありません(ただし、興味があれば作成されたスキーマを表示できます)。現在ベータリリースですが、サブスクリプションを除いて、GraphQLサーバーの完全な実装です。

明確にするために、引数(デフォルト値を含む)、オブジェクト/リスト/列挙型/入力/インターフェース/ユニオン型、エイリアス、フラグメント、変数、ディレクティブ、ミューテーション、インラインフラグメント、説明、イントロスペクション、カスタムスカラーなど、これらのGraphQL機能をすべてサポートしています。

テスト(JMeter)では、シンプルなクエリに対して他のGo実装と同等かそれ以上の速度であることが示されています。キャッシング、データローダー、複雑さの制限など、パフォーマンス向上のための機能強化に取り組んでいます。

eggqlのHelloWorldサーバーを実行するには、このGoプログラムをビルドして実行します。

package main
import "github.com/andrewwphillips/eggql"
func main() {
http.Handle("/graphql", eggql.New(struct{ Message string }{Message: "hello, world"}))
http.ListenAndServe(":80", nil)
}

これにより、単一のmessageフィールドを持つルートQueryオブジェクトが作成されます。curlでクエリを送信してテストします。

$ curl -XPOST -d '{"query": "{ message }"}' localhost:80/graphql

そして、このレスポンスが得られます。

{
"data": {
"message": "hello, world"
}
}

クライアント

genqlient

最終リリース2週間前
スター1k
ライセンスMITライセンス

真に型安全なGo GraphQLクライアント。

genqlientは、GraphQL APIをクエリするための型安全なコードを簡単に生成するGoライブラリです。GraphQLとGoの両方が型付き言語であるという事実を利用して、コンパイル時にコードが有効なGraphQLクエリを作成し、結果を正しく使用していることを保証します。すべて最小限のボイラープレートで実現します。

genqlientは以下の機能を提供します。

  • GraphQLクエリのコンパイル時バリデーション:無効なGraphQLクエリを二度とリリースしません。!
  • 型安全なレスポンスオブジェクト:genqlientは各クエリに適切な型を生成するため、レスポンスが正しくアンマーシャルされることがわかり、interface{}を使用する必要がなくなります。
  • 本番環境対応:genqlientはKhan Academyで本番環境で使用されており、世界中の何百万もの学習者と教師をサポートしています。

machinebox/graphql

最終リリース5年前
スター1k
ライセンスApache License 2.0

GraphQLのためのエレガントな低レベルHTTPクライアント。

graphql

スター1k
ライセンスMITライセンス

Go言語によるGraphQLクライアントの実装。

go-graphql-client

最終リリース2週間前
スター数366
ライセンスMITライセンス

ミューテーション、クエリ、サブスクリプションをサポートするGraphQL Goクライアント。

ツール

graphjin

最終リリース3ヶ月前
スター3k
ライセンスApache License 2.0

インスタントGraphQL to SQLコンパイラ。スタンドアロンサービスまたはGoライブラリとして使用できます。以前はsuper-graphと呼ばれていました。

PHP

サーバー

API Platform

最終リリース1週間前
スター8k
ライセンスMITライセンス

API Platformは、Symfony上に構築されたフル機能、柔軟性、拡張性に優れたAPIフレームワークです。

次のクラスだけで、Relay互換のGraphQLサーバーと、最新のRESTフォーマット(JSON-LD、JSONAPIなど)をサポートするハイパーメディアAPIの両方を生成できます。

<?php
namespace AppEntity;
use ApiPlatformCoreAnnotationApiResource;
use DoctrineORMMapping as ORM;
/**
* Greet someone!
*
* @ApiResource
* @ORMEntity
*/
class Greeting
{
/**
* @ORMId
* @ORMColumn(type="guid")
*/
public $id;
/**
* @var string Your nice message
*
* @ORMColumn
*/
public $hello;
}

API Platformのその他の機能には、データ検証、認証、承認、非推奨化、キャッシュ、GraphiQL統合などがあります。

graphql-php

最終リリース1週間前
スター5k
ライセンスMITライセンス

GraphQLリファレンス実装のPHPポート。

WPGraphQL

最終リリース5日前
スター4k
ライセンスGNU General Public License v3.0

WordPressサイトに拡張可能なGraphQLスキーマとAPIを提供する、無料のオープンソースWordPressプラグイン。

Lighthouse

最終リリース1週間前
スター3k
ライセンスMITライセンス

Laravel用のGraphQLサーバー。

Siler

最終リリース3年前
スター1k
ライセンスMITライセンス

Silerは、GraphQLを扱うための高レベルの抽象化によって強化されたPHPライブラリです。

SilerのHelloWorldスクリプトを実行するには

type Query {
hello: String
}
<?php
declare(strict_types=1);
require_once '/path/to/vendor/autoload.php';
use SilerDiactoros;
use SilerGraphql;
use SilerHttp;
$typeDefs = file_get_contents(__DIR__.'/schema.graphql');
$resolvers = [
'Query' => [
'hello' => 'world',
],
];
$schema = Graphqlschema($typeDefs, $resolvers);
echo "Server running at http://127.0.0.1:8080";
Httpserver(Graphqlpsr7($schema), function (Throwable $err) {
var_dump($err);
return Diactorosjson([
'error' => true,
'message' => $err->getMessage(),
]);
})()->run();

また、Apollo の動作に基づいた WebSocket サブスクリプションサーバーの構築機能も提供します。

GraphQLBundle

最終リリース1週間前
スター1k
ライセンスMITライセンス

Symfony 用の GraphQL サーバー

GraphQLite

最終リリース12時間前
スター1k
ライセンスMITライセンス

GraphQLite は、GraphQL スキーマ定義にアノテーションベースの構文を提供するライブラリです。

フレームワークに依存せず、Symfony と Laravel のバインディングが利用可能です。このコードは "product" クエリと "Product" タイプを宣言します。

class ProductController
{
/**
* @Query()
*/
public function product(string $id): Product
{
// Some code that looks for a product and returns it.
}
}
/**
* @Type()
*/
class Product
{
/**
* @Field()
*/
public function getName(): string
{
return $this->name;
}
// ...
}

その他の GraphQLite の機能には、検証、セキュリティ、エラー処理、データローダーパターンによる読み込みなどが含まれます。

Railt

最終リリース5年前
スター360
ライセンスMITライセンス

PHP の GraphQL フレームワーク。

Gato GraphQL

最終リリース6日前
スター348
ライセンスGNU General Public License v2.0

WordPress のすべてのデータとやり取りします。

graphql-relay-php

最終リリース2年前
スター271
ライセンスBSD 3-Clause "New" or "Revised" License

react-relay をサポートする graphql-php サーバーの構築に役立つライブラリです。

GraPHPinator

最終リリース4ヶ月前
スター39
ライセンスMITライセンス

最新の PHP 用の GraphQL 実装です。最新のドラフトからの機能、ミドルウェアディレクティブ、追加機能を備えたモジュールが含まれています。

GraPHPinator は、GraphQL サーバーの機能が完全な PHP 実装です。その役割は、クエリ文字列を、指定されたスキーマに対する解決済みの JSON 結果に変換することです。

  • 最新の GraphQL 仕様ドラフトに準拠することを目指しています。
  • 完全に型安全であるため、最小限必要な PHP のバージョンは 8.0 です。わずかな利便性を犠牲にして、明確さと安全性を大幅に向上させています。ランダムな構成 `array`、混合型、可変関数引数はありません。このライブラリは冗長性から保護しようとはしませんが、常に何が得られるかを知ることができるようにします。
  • コードファースト。
  • 柔軟性があります。モジュールまたはミドルウェアディレクティブを使用して、追加機能を簡単に拡張できます。
  • 公式仕様の範囲外であるいくつかのオプトイン拡張機能が含まれています。
    • Printer - GraPHPinator 型システムのスキーマ印刷。
    • Extra types - スカラー型と複合型の両方を含む、いくつかの有用で一般的に使用される型。
    • Constraint directives - GraphQL 型システムに追加の検証を宣言するための型システムディレクティブ。
    • Where directives - リスト内の値をフィルタリングするための実行可能ディレクティブ。
    • multipart-formdata 仕様を使用したファイルアップロード(現在バンドルされています)。
    • Query cost limit module - 最大深度またはノード数を制限することでクエリコストを制限するモジュール。
  • プロジェクトは複数の小さなパッケージで構成されており、スタンドアロンで使用できます。
    • Tokenizer - GraphQL ドキュメントの字句解析器。
    • Parser - GraphQL ドキュメントの構文解析器。

serge

スター5
ライセンスGNU General Public License v3.0

GraphQL を使用して CQRS/ES のドメインモデルを定義し、serge に GraphQL 要求を処理するコードを生成させます。

サーバー

graphql-java

最終リリース1日前
スター6k
ライセンスMITライセンス

GraphQL API を構築するための Java ライブラリ。

GraphQL Java ウェブサイトの入門チュートリアルを参照してください。

`graphql-java` を使用して hello world GraphQL クエリを実行するコード

import graphql.ExecutionResult;
import graphql.GraphQL;
import graphql.schema.GraphQLSchema;
import graphql.schema.StaticDataFetcher;
import graphql.schema.idl.RuntimeWiring;
import graphql.schema.idl.SchemaGenerator;
import graphql.schema.idl.SchemaParser;
import graphql.schema.idl.TypeDefinitionRegistry;
import static graphql.schema.idl.RuntimeWiring.newRuntimeWiring;
public class HelloWorld {
public static void main(String[] args) {
String schema = "type Query{hello: String}";
SchemaParser schemaParser = new SchemaParser();
TypeDefinitionRegistry typeDefinitionRegistry = schemaParser.parse(schema);
RuntimeWiring runtimeWiring = newRuntimeWiring()
.type("Query", builder -> builder.dataFetcher("hello", new StaticDataFetcher("world")))
.build();
SchemaGenerator schemaGenerator = new SchemaGenerator();
GraphQLSchema graphQLSchema = schemaGenerator.makeExecutableSchema(typeDefinitionRegistry, runtimeWiring);
GraphQL build = GraphQL.newGraphQL(graphQLSchema).build();
ExecutionResult executionResult = build.execute("{hello}");
System.out.println(executionResult.getData().toString());
// Prints: {hello=world}
}
}

詳細については、graphql-java のドキュメントを参照してください。

Domain Graph Service (DGS) フレームワーク

最終リリース1日前
スター3k
ライセンスApache License 2.0

DGS フレームワーク(ドメイングラフサービス)は、Netflix が開発した Spring Boot 用の GraphQL サーバーフレームワークです。

DGS フレームワーク(ドメイングラフサービス)は、Netflix が開発した Spring Boot 用の GraphQL サーバーフレームワークです。

機能には以下が含まれます。

  • アノテーションベースの Spring Boot プログラミングモデル
  • クエリテストを単体テストとして記述するためのテストフレームワーク
  • スキーマから型を作成するための Gradle コード生成プラグイン
  • GraphQL Federation との簡単な統合
  • Spring Security との統合
  • GraphQL サブスクリプション(WebSockets と SSE)
  • ファイルアップロード
  • エラー処理
  • 多くの拡張ポイント

開始方法については、DGS Framework の入門を参照してください。

graphql-kotlin

最終リリース1ヶ月前
スター2k
ライセンスApache License 2.0

Kotlin で GraphQL クライアントとサーバーを実行するためのライブラリのセットです。

GraphQL Kotlin は、GraphQL スキーマを生成するためにコードファーストのアプローチに従います。Kotlin と GraphQL(null 許容/非 null 許容型を定義できるなど)の類似点を考慮すると、個別のスキーマ仕様なしで、Kotlin コードからスキーマを生成できます。リアクティブな GraphQL Web サーバーを作成するには、Gradle ビルドファイルに次の依存関係を追加します。

// build.gradle.kts
implementation("com.expediagroup", "graphql-kotlin-spring-server", latestVersion)

リフレクションを介してスキーマオブジェクトを公開するためにスキャンできるサポートされているパッケージのリストも提供する必要があります。`application.yml` ファイルに次の設定を追加します。

graphql:
packages:
- "com.your.package"

上記の構成により、スキーマを作成できるようになりました。GraphQLスキーマでクエリ、ミューテーション、および/またはサブスクリプションを公開するには、対応するマーカーインターフェースを実装するだけで、graphql-kotlin-spring-server自動構成ライブラリによって自動的に検出されます。

@Component
class HelloWorldQuery : Query {
fun helloWorld() = "Hello World!!!"
}

これにより、次のスキーマを持つリアクティブなGraphQL Webアプリケーションが作成されます。

type Query {
helloWorld: String!
}

詳細はgraphql-kotlinドキュメントを参照してください。

GraphQL Spring Boot

最終リリース3ヶ月前
スター2k
ライセンスMITライセンス

GraphQL Java KickstartによるGraphQL Spring Boot

GraphQL Spring Bootは、任意のSpring BootアプリケーションをGraphQLサーバーに変換します。

次の機能が含まれています。

  • GraphQL Java Tools を使用したスキーマ駆動型APIの使用
  • GraphQL-Java Annotations を使用したアノテーション駆動型スキーマのオプション選択
  • スキーマのイントロスペクションとクエリデバッグのための組み込みGraphiQLツール
  • スキーマのイントロスペクションとクエリデバッグのための組み込みGraphQL Playgroundツール
  • GraphQL APIをインタラクティブなグラフとして表現するGraphQL Voyagerツールの組み込み

開始方法については、GraphQL Java Kickstart入門を参照してください。

Spring for GraphQL

最新リリース4週間前
スター1k
ライセンスApache License 2.0

Spring for GraphQLは、GraphQL Javaを基盤とするSpringアプリケーションをサポートします。

Spring for GraphQLは、GraphQL Javaを基盤とするSpringアプリケーションをサポートします。15分でGraphQLサービスを構築する方法については、公式のSpringガイドを参照してください。

  • GraphQL JavaチームとSpringエンジニアリングチームによる共同開発です。
  • 私たちの共有理念は、幅広いユースケースに対する包括的なサポートに重点を置きながら、できる限り少ない意見を提供することです。
  • すべてのSpring、GraphQLアプリケーションの基盤となることを目指しています。

機能

  • HTTP、WebSocket、およびRSocket経由でのGraphQLリクエストのサーバー処理。
  • アノテーションベースのプログラミングモデル。@Controllerコンポーネントは、アノテーションを使用して、特定のGraphQLフィールドのデータを取得するための柔軟なメソッドシグネチャを持つハンドラーメソッドを宣言します。例:
@Controller
public class GreetingController {
@QueryMapping
public String hello() {
return "Hello, world!";
}
}
  • HTTP、WebSocket、およびRSocket経由でのGraphQLリクエストの実行のためのクライアントサポート。
  • HTTP、WebSocket、およびRSocket経由でのGraphQLリクエストのテスト、およびサーバーに対する直接テストのための専用のサポート。

開始するには、https://start.spring.ioのSpring GraphQLスターターと、このリポジトリのサンプルを確認してください。

Jimmer

最終リリース1週間前
スター1k
ライセンスApache License 2.0

JavaとKotlinの両方のための革新的なORMフレームワークであり、Spring GraphQLベースのアプリケーションの迅速な開発のための特殊なAPIも提供します。

はじめに#

  1. SpringBootは2.7以降、Spring GraphQLを導入しました。Jimmerは、Spring GraphQLベースのアプリケーションの迅速な開発のための特殊なAPIを提供します。

  2. Java APIとKotlin APIの2つのAPIをサポートします。

  3. 強力でGraphQLに適したキャッシュサポート。

  4. 他の一般的なORMソリューションよりも高速です。ベンチマークはこちらを参照してください:https://babyfish-ct.github.io/jimmer/docs/benchmark/

  5. 他の一般的なORMソリューションよりも強力です。

    ORM設計では、次の3つの側面を考慮する必要があります。

    a. クエリ b. 更新 c. キャッシュ

    各側面は、単純なオブジェクトではなく、任意の深さのオブジェクトツリーを対象としています。この独特の設計により、他の一般的なソリューションでは得られない利便性がもたらされます。

リンク#

KGraphQL

最終リリース1年前
スター292
ライセンスMITライセンス

KGraphQLは、GraphQLのKotlin実装です。GraphQLスキーマを設定するための豊富なDSLを提供します。

Kotlinデータクラスと、クラスに適用されるプロパティリゾルバーに基づいて、単純なスキーマを作成する方法の例を以下に示します。

data class Article(val id: Int, val text: String)
fun main() {
val schema = KGraphQL.schema {
query("article") {
resolver { id: Int?, text: String ->
Article(id ?: -1, text)
}
}
type<Article> {
property<String>("fullText") {
resolver { article: Article ->
"${article.id}: ${article.text}"
}
}
}
}
schema.execute("""
{
article(id: 5, text: "Hello World") {
id
fullText
}
}
""").let(::println)
}

KGraphQLは、優れた非同期パフォーマンスを提供するために、内部でコルーチンを使用しています。

詳細な使用方法については、KGraphQLドキュメントを参照してください。

Ktorプラグイン#

KGraphQLには、単一のinstall関数呼び出しで完全に機能するGraphQLサーバーを提供するKtorプラグインがあります。以下の例は、Ktor内でGraphQLサーバーを設定する方法を示しており、localhost:8080/graphqlに入力することで、GraphQL Playgroundをすぐに使用できます。

fun Application.module() {
install(GraphQL) {
playground = true
schema {
query("hello") {
resolver { -> "World!" }
}
}
}
}

KtorからKGraphQLサーバーをゼロから設定するには、Ktorチュートリアルに従うことができます。

graphql-calculator

最終リリース2年前
スター103
ライセンスApache License 2.0

軽量のGraphQL計算エンジン。

GraphQL Calculatorは、GraphQLクエリの実行動作を変更するために使用される軽量のGraphQL計算エンジンです。

GraphQLクエリでGraphQL Calculatorを使用する方法の例をいくつか示します。

query basicMapValue($userIds: [Int]) {
userInfoList(userIds: $userIds) {
id
age
firstName
lastName
fullName: stringHolder @map(mapper: "firstName + lastName")
}
}
query filterUserByAge($userId: [Int]) {
userInfoList(userIds: $userId) @filter(predicate: "age>=18") {
userId
age
firstName
lastName
}
}
query parseFetchedValueToAnotherFieldArgumentMap($itemIds: [Int]) {
itemList(itemIds: $itemIds) {
# save sellerId as List<Long> with unique name "sellerIdList"
sellerId @fetchSource(name: "sellerIdList")
name
saleAmount
salePrice
}
userInfoList(userIds: 1)
# transform the argument of "userInfoList" named "userIds" according to expression "sellerIdList" and expression argument,
# which mean replace userIds value by source named "sellerIdList"
@argumentTransform(
argumentName: "userIds"
operateType: MAP
expression: "sellerIdList"
dependencySources: ["sellerIdList"]
) {
userId
name
age
}
}

詳細については、graphql-calculator READMEを参照してください。

MicroProfile GraphQL

最終リリース2年前
スター95
ライセンスApache License 2.0

MP GraphQLは、GraphQLアプリケーションを構築するためのコードファースト仕様です。JAX-RSと同様のアノテーションとデザインパターンを使用して、迅速な開発を可能にします。

MicroProfile GraphQLは、GraphQLアプリケーションを構築するためのGraphQLサーバーおよびクライアント仕様です。独自の注釈ベースのAPIアプローチにより、迅速なアプリケーション開発が可能になります。MP GraphQL APIにコーディングされたアプリケーションはポータブルであり、Open LibertyQuarkusHelidonWildflyなどのJavaサーバーランタイムにデプロイできます。つまり、アプリケーションは他のJakartaおよびMicroProfileテクノロジーを利用できます。

MP GraphQLの機能には、次のものがあります。

  • アノテーションベースのAPI
  • Jakarta CDIとの統合
  • 型安全で動的なクライアントAPI
  • 例外処理
  • JakartaおよびMicroProfileテクノロジーとの容易な統合

開始するには、これらのリソースを確認してください。

またはこれらのビデオ

クライアント

Apollo Kotlin

最新リリース58分前
スター4k
ライセンスMITライセンス

JVM、Android、およびKotlinマルチプラットフォーム向けの、厳密に型付けされたキャッシングGraphQLクライアント。

Apollo Kotlin(以前はApollo Androidとして知られていました)は、Android、Java8+、iOS、および一般的にKotlinマルチプラットフォームをサポートするGraphQLクライアントです。次の機能を備えています。

  • JavaおよびKotlinマルチプラットフォームコード生成
  • クエリ、ミューテーション、およびサブスクリプション
  • リフレクションフリーの解析
  • 正規化されたキャッシュ
  • カスタムスカラー型
  • HTTPキャッシュ
  • 自動永続化クエリ
  • クエリバッチ処理
  • ファイルアップロード
  • Espresso IdlingResource
  • テストのためのフェイクモデル
  • AppSyncとgraphql-ws Webソケット
  • GraphQL ASTパーサー

graphql-kotlin

最終リリース1ヶ月前
スター2k
ライセンスApache License 2.0

Kotlin で GraphQL クライアントとサーバーを実行するためのライブラリのセットです。

GraphQL Kotlinは、一連の軽量で型安全なGraphQL HTTPクライアントを提供します。このライブラリは、Ktor HTTPクライアントとSpring WebClientベースのリファレンス実装を提供するだけでなく、他のエンジンを使用したカスタム実装も許可します。Jacksonとkotlinx-serializationの型安全なデータモデルは、提供されているGradleおよびMavenプラグインによってビルド時に生成されます。

GraphQL Kotlin Spring WebClientで使用されるJacksonモデルを生成するには、Gradleビルドファイルに以下を追加します。

// build.gradle.kts
import com.expediagroup.graphql.plugin.gradle.graphql
plugins {
id("com.expediagroup.graphql") version $latestGraphQLKotlinVersion
}
dependencies {
implementation("com.expediagroup:graphql-kotlin-spring-client:$latestGraphQLKotlinVersion")
}
graphql {
client {
// target GraphQL endpoint
endpoint = "http://localhost:8080/graphql"
// package for generated client code
packageName = "com.example.generated"
}
}

デフォルトでは、GraphQL Kotlinプラグインはsrc/main/resourcesの下にあるクエリファイルを探します。HelloWorldQuery.graphqlサンプルクエリを指定した場合:

query HelloWorldQuery {
helloWorld
}

プラグインは、GraphQLClientRequestインターフェースを実装する単純なPOJOであり、GraphQLリクエストを表すクラスを生成します。

package com.example.generated
import com.expediagroup.graphql.client.types.GraphQLClientRequest
import kotlin.String
import kotlin.reflect.KClass
const val HELLO_WORLD_QUERY: String = "query HelloWorldQuery {\n helloWorld\n}"
class HelloWorldQuery: GraphQLClientRequest<HelloWorldQuery.Result> {
override val query: String = HELLO_WORLD_QUERY
override val operationName: String = "HelloWorldQuery"
override fun responseType(): KClass<HelloWorldQuery.Result> = HelloWorldQuery.Result::class
data class Result(
val helloWorld: String
}
}

その後、ターゲットクライアントを使用してクエリを実行できます。

package com.example.client
import com.expediagroup.graphql.client.spring.GraphQLWebClient
import com.expediagroup.graphql.generated.HelloWorldQuery
import kotlinx.coroutines.runBlocking
fun main() {
val client = GraphQLWebClient(url = "http://localhost:8080/graphql")
runBlocking {
val helloWorldQuery = HelloWorldQuery()
val result = client.execute(helloWorldQuery)
println("hello world query result: ${result.data?.helloWorld}")
}
}

詳細はgraphql-kotlinクライアントドキュメントを参照してください。

Nodes

最新リリース4年前
スター305
ライセンスApache License 2.0

標準的なモデル定義からクエリを構築するために設計されたGraphQL JVMクライアント。American Expressによる開発。

ツール

GraphQL Javaジェネレーター

スター50
ライセンスMITライセンス

GraphQL Javaジェネレーターは、GraphQL APIのクライアントとサーバーの開発をスピードアップするためのJavaコードを生成するツールです。

  • GraphQL Javaクライアント:GraphQLエンドポイントを呼び出すJavaクラスと、サーバーから返されるデータを含むPOJOを生成します。GraphQLエンドポイントは、Javaメソッドへの単純な呼び出しを使用してクエリできます(以下のサンプルを参照)。
  • GraphQL Javaサーバー:graphql-java(上記にリストされています)に基づいています。すべてのボイラープレートコードを生成します。GraphQLタイプの結合など、サーバーに固有のものだけを実装する必要があります。GraphQL JavaジェネレーターはMavenプラグインとして利用できます。Gradleプラグインは近日公開予定です。GraphQL Javaジェネレーターはアクセラレーターであることに注意してください。生成されたコードは、GraphQL Javaジェネレーター固有のライブラリに依存しません。そのため、graphql-javaベースのアプリケーションの構築開始を支援します。コードが生成されたら、標準的なJavaアプリケーションとして手動で編集し、GraphQL Javaジェネレーターを削除することもできます。もちろん、プロジェクトの進化に合わせてGraphQL Javaジェネレーターを引き続き使用することもできます(そして、そうすべきだと考えています)。

サーバー

graphql-dotnet

最終リリース1ヶ月前
スター6k
ライセンスMITライセンス

.NET 用 GraphQL

using System;
using System.Threading.Tasks;
using GraphQL;
using GraphQL.Types;
using GraphQL.SystemTextJson; // First add PackageReference to GraphQL.SystemTextJson
public class Program
{
public static async Task Main(string[] args)
{
var schema = Schema.For(@"
type Query {
hello: String
}
");
var json = await schema.ExecuteAsync(_ =>
{
_.Query = "{ hello }";
_.Root = new { Hello = "Hello World!" };
});
Console.WriteLine(json);
}
}

Hot Chocolate

最終リリース3時間前
スター5k
ライセンスMITライセンス

Hot Chocolate は .NET 用のオープンソース GraphQL サーバーです。

Hot Chocolate は、本格的な GraphQL サーバー構築の複雑さを解消し、次の大きな目標に集中できるようにします。

using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
WebHost
.CreateDefaultBuilder(args)
.ConfigureServices(services =>
services
.AddGraphQLServer()
.AddQueryType<Query>())
.Configure(builder =>
builder
.UseRouting()
.UseEndpoints(e => e.MapGraphQL()))
.Build()
.Run();
public class Query
{
public Hero GetHero() => new Hero();
}
public class Hero
{
public string Name => "Luke Skywalker";
}

graphql-net

スター1k
ライセンスMITライセンス

GraphQL を IQueryable に変換します。

Entity GraphQL

最終リリース1日前
スター373
ライセンスMITライセンス

.NET Core 用の GraphQL ライブラリです。データモデルを GraphQL API として簡単に公開したり、複数のデータソースを単一の GraphQL スキーマに統合したりできます。

// expose an exisiting data model with ASP.NET & EF Core
public class Startup {
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<DemoContext>();
// Auto build a schema from DemoContext. Alternatively you can build one from scratch
services.AddGraphQLSchema<DemoContext>(options =>
{
// modify the schema (add/remove fields or types), add other services
});
}
public void Configure(IApplicationBuilder app, DemoContext db)
{
app.UseRouting();
app.UseEndpoints(endpoints =>
{
// defaults to /graphql endpoint
endpoints.MapGraphQL<DemoContext>();
});
}
}

.NET で高性能な GraphQL サーバーを実装するためのパッケージのセットです。公式の 2018 年仕様に忠実に準拠しています。バッチ実行サポート(別名データローダー)、カスタムスカラーのサポート、ASP.NET Core ベースの HTTP サーバー、解析済みクエリキャッシュ、モジュール式 API 構築(スキーマスティッチングに相当)、完全なイントロスペクションサポート、ランタイムメトリクスとクォータを備えています。

クライアント

Strawberry Shake

最終リリース3時間前
スター5k
ライセンスMITライセンス

Strawberry Shake は .NET 用のオープンソースリアクティブ GraphQL クライアントです。

Strawberry Shake は、状態管理の複雑さを解消し、GraphQL を通じてローカルおよびリモートデータと対話できるようにします。

Strawberry Shake を使用して、次のことができます。

  • GraphQL クエリから C# クライアントを生成します。
  • GraphQL を通じてローカルおよびリモートデータと対話します。
  • リアクティブ API を使用して状態と対話します。
client.GetHero
.Watch(ExecutionStrategy.CacheFirst)
.Subscribe(result =>
{
Console.WriteLine(result.Data.Name);
})

GraphQL.Client

最終リリース5時間前
スター1k
ライセンスMITライセンス

.NET 用の GraphQL クライアントです。

ZeroQL

最新リリース4週間前
スター236
ライセンスMITライセンス

ZeroQL は C# 用のオープンソース GraphQL クライアントです。

ZeroQL は、高性能で C# に適した GraphQL クライアントです。Linq に似た構文をサポートし、Reflection.Emit や式は必要ありません。その結果、実行時のパフォーマンスは生の HTTP 呼び出しに非常に近くなります。

ZeroQL を使用して、次のことができます。

  • GraphQL スキーマから C# クライアントを生成します。
  • C# コードから GraphQL クエリを生成して実行します。
  • GraphQL を手動で記述する必要はありません。
  • .Net Core、.Net Framework、Xamarin、Unity アプリをサポートしています。
var userId = 10;
var response = await qlClient.Query(q => q
.User(userId, o => new
{
o.Id,
o.FirstName,
o.LastName
}));

graphql-net-client

スター94
ライセンスMITライセンス

.NET 用の基本的な例題 GraphQL クライアントです。

SAHB.GraphQLClient

最終リリース3年前
スター43
ライセンスMITライセンス

C# クラスからクエリを生成する機能をサポートする GraphQL クライアントです。

サーバー

Graphene

最終リリース7ヶ月前
スター8k
ライセンスMITライセンス

GraphQL API を構築するための Python ライブラリです。

Graphene の hello world スクリプトを実行するには

pip install graphene

次に、`hello.py` にこのコードを入れて `python hello.py` を実行します。

import graphene
class Query(graphene.ObjectType):
hello = graphene.String(name=graphene.String(default_value="World"))
def resolve_hello(self, info, name):
return 'Hello ' + name
schema = graphene.Schema(query=Query)
result = schema.execute('{ hello }')
print(result.data['hello']) # "Hello World"

Relay、Django、SQLAlchemy、Google App Engine のための優れたバインディングもあります。

Strawberry

最終リリース1週間前
スター4k
ライセンスMITライセンス

Strawberry は、型ヒントなどの最新の Python 機能を使用してコードファースト GraphQL サーバーを実装するための Python ライブラリです。

Strawberry の hello world の例を次に示します。まず、ライブラリをインストールします。

pip install strawberry-graphql

`app.py` ファイルを作成し、この内容を記述します。

import strawberry
@strawberry.type
class Query:
@strawberry.field
def hello(self, name: str = "World") -> str:
return f"Hello {name}"
schema = strawberry.Schema(query=Query)

次に `strawberry server app` を実行すると、`http://localhost:8000/` で基本的なスキーマサーバーが実行されます。

Strawberry は ASGI、Flask、Django のビューも提供し、データローダーやトレーシングなどのユーティリティを提供します。

Ariadne

最終リリース2日前
スター2k
ライセンスBSD 3-Clause "New" or "Revised" License

Ariadne は、スキーマファーストアプローチを使用して GraphQL サーバーを実装するための Python ライブラリです。同期と非同期の両方クエリ実行をサポートし、クエリコスト検証やパフォーマンス トレーシングなどの一般的な GraphQL サーバーの問題に対する機能を備え、拡張または置き換えが簡単なシンプルな API を備えています。

Ariadne は pip でインストールできます。

$ pip install ariadne

最小限の「Hello world」サーバーの例

from ariadne import ObjectType, gql, make_executable_schema
from ariadne.asgi import GraphQL
type_defs = gql(
"""
type Query {
hello: String!
}
"""
)
query_type = ObjectType("Query")
@query_type.field("hello")
def resolve_hello(*_):
return "Hello world!"
schema = make_executable_schema(type_defs, query_type)
app = GraphQL(schema, debug=True)

uvicorn でサーバーを実行します。

$ pip install uvicorn
$ uvicorn example:app

Tartiflette

最終リリース2年前
スター1k
ライセンスMITライセンス

GraphQL API を構築するための Python 3.6+ (asyncio) ライブラリです。

tartiflette の hello world スクリプトを実行するには

pip install tartiflette

次に、`hello.py` にこのコードを入れて `python hello.py` を実行します。

import asyncio
from tartiflette import Engine, Resolver
@Resolver("Query.hello")
async def resolver_hello(parent, args, ctx, info):
return "hello " + args["name"]
async def run():
tftt_engine = Engine("""
type Query {
hello(name: String): String
}
""")
result = await tftt_engine.execute(
query='query { hello(name: "Chuck") }'
)
print(result)
# {'data': {'hello': 'hello Chuck'}}
if __name__ == "__main__":
loop = asyncio.get_event_loop()
loop.run_until_complete(run())

優れたHTTP ラッパーもあります。

Django Graphbox

最終リリース2ヶ月前
スター9
ライセンスMITライセンス

Django モデルの基本的な CRUD 操作を使用して GraphQL API を簡単に構築するためのパッケージです。

Django Graphbox のクイックスタート

  1. パッケージをインストールします。
pip install django-graphbox
  1. 新しい Django プロジェクトを作成します。
django-admin startproject myproject
  1. 新しい Django アプリを作成します。
cd myproject
python manage.py startapp myapp
  1. `myapp/models.py` で Django モデルを定義します。
from django.db import models
class MyModel(models.Model):
name = models.CharField(max_length=100)
  1. マイグレーションを作成して実行します。
python manage.py makemigrations
python manage.py migrate
  1. `myapp/schema.py` で GraphQL スキーマを構成して構築します。
from django_graphbox.builder import SchemaBuilder
from myapp.models import MyModel
builder = SchemaBuilder()
builder.add_model(MyModel)
query_class = builder.build_schema_query()
mutation_class = builder.build_schema_mutation()
  1. `myproject/schema.py` でメインスキーマを作成します(このメインスキーマには、独自のクエリとミューテーションを追加できます)。
import graphene
from myapp.schema import query_class, mutation_class
class Query(query_class, graphene.ObjectType):
pass
class Mutation(mutation_class, graphene.ObjectType):
pass
schema = graphene.Schema(query=Query, mutation=Mutation)
  1. `myproject/urls.py` に GraphQL ビューを追加します。
from django.urls import path
from graphene_file_upload.django import FileUploadGraphQLView
from django.views.decorators.csrf import csrf_exempt
from myproject.schema import schema
urlpatterns = [
path('graphql/', csrf_exempt(FileUploadGraphQLView.as_view(graphiql=True, schema=schema))),
]
  1. サーバーを実行します。
python manage.py runserver
  1. `http://localhost:8000/graphql/` で GraphiQL インターフェースを開き、API のクエリを開始します。!

認証、フィルター、検証などの高度な例は、github または pypi で確認できます。

クライアント

GQL

最終リリース1ヶ月前
スター1k
ライセンスMITライセンス

Python の GraphQL クライアントです。

sgqlc

スター491
ライセンスISC License

シンプルな Python GraphQL クライアントです。GraphQL スキーマで定義された型のコード生成をサポートしています。

Ariadne Codegen

最終リリース2週間前
スター193
ライセンスBSD 3-Clause "New" or "Revised" License

任意のスキーマとクエリから、完全に型指定された Python GraphQL クライアントを生成します。

Ariadne Codegen をインストールします。

$ pip install ariadne-codegen

`queries.graphql` ファイルを作成します。

mutation CreateToken($username: String!, $password: String!) {
createToken(username: $username, password: $password) {
token
errors {
field
message
}
}
}

`pyproject.toml` に `[ariadne-codegen]` セクションを追加します。

[ariadne-codegen]
queries_path = "queries.graphql"
remote_schema_url = "http://example.com/graphql/"

クライアントを生成します。

$ ariadne-codegen

そして、Python プロジェクトで使用します。

from graphql_client import Client
with Client("http://example.com/graphql/") as client:
result = client.create_token(username="Admin", password="Example123)
if result.errors:
error = result.errors[0]
raise ValidationError({error.field: error.message})
auth_token = result.token

python-graphql-client

スター155
ライセンスMITライセンス

Python 2.7+ 用のシンプルな GraphQL クライアントです。

Qlient

最終リリース1年前
スター45
ライセンスMITライセンス

シンプルさを念頭に置いて設計された、高速で現代的な graphql クライアントです。

qlient の hello world の例を次に示します。

まず、ライブラリをインストールします。

pip install qlient

`swapi_client_example.py` ファイルを作成し、この内容を記述します。

from qlient.http import HTTPClient, GraphQLResponse
client = HTTPClient("https://swapi-graphql.netlify.app/.netlify/functions/index")
res: GraphQLResponse = client.query.film(
# swapi graphql input fields
id="ZmlsbXM6MQ==",
# qlient specific
_fields=["id", "title", "episodeID"]
)
print(res.request.query) # query film($id: ID) { film(id: $id) { id title episodeID } }
print(res.request.variables) # {'id': 'ZmlsbXM6MQ=='}
print(res.data) # {'film': {'id': 'ZmlsbXM6MQ==', 'title': 'A New Hope', 'episodeID': 4}}

ファイルを閉じて、python を使用して実行します。

python swapi_client_example.py

graphql-query

最新リリース4週間前
スター45
ライセンスMITライセンス

Python 用の完全な GraphQL クエリ文字列生成ツールです。

**graphql_query** は、Python 用の完全な GraphQL クエリ文字列ビルダーです。**graphql_query** を使用すると、**graphql_query** のドキュメントは https://denisart.github.io/graphql-query/ で確認できます。

$ pip install graphql_query

シンプルなクエリのコード

{
hero {
name
}
}

それは

from graphql_query import Operation, Query
hero = Query(name="hero", fields=["name"])
operation = Operation(type="query", queries=[hero])
print(operation.render())
"""
query {
hero {
name
}
}
"""

次のクエリの生成について

query Hero($episode: Episode, $withFriends: Boolean!) {
hero(episode: $episode) {
name
friends @include(if: $withFriends) {
name
}
}
}

私たちは

from graphql_query import Argument, Directive, Field, Operation, Query, Variable
episode = Variable(name="episode", type="Episode")
withFriends = Variable(name="withFriends", type="Boolean!")
arg_episode = Argument(name="episode", value=episode)
arg_if = Argument(name="if", value=withFriends)
hero = Query(
name="hero",
arguments=[arg_episode],
fields=[
"name",
Field(
name="friends",
fields=["name"],
directives=[Directive(name="include", arguments=[arg_if])]
)
]
)
operation = Operation(
type="query",
name="Hero",
variables=[episode, withFriends],
queries=[hero]
)
print(operation.render())
"""
query Hero(
$episode: Episode
$withFriends: Boolean!
) {
hero(
episode: $episode
) {
name
friends @include(
if: $withFriends
) {
name
}
}
}
"""

サーバー

graphql-rust/juniper

最終リリース1時間前
スター6k
ライセンスその他

Rust 用の GraphQL サーバーライブラリです。

Async-graphql

最終リリース1年前
スター3k
ライセンスApache License 2.0

Async-graphql は、すべての GraphQL 仕様をサポートする高性能なサーバーサイドライブラリです。

use async_graphql::*;
struct Query;
#[Object]
impl Query {
/// Returns the sum of a and b
async fn add(&self, a: i32, b: i32) -> i32 {
a + b
}
}

クライアント

cynic

最終リリース1ヶ月前
スター333
ライセンスMozilla Public License 2.0

Rust 用の独自の型を使用する GraphQL クライアントです。

提供された型からクエリを生成し、型がスキーマの形状と一致することを検証する Rust 用のクライアントライブラリです。

既存の GraphQL クエリから型をブートストラップするためのジェネレーターを提供します。

使用例

#[derive(cynic::QueryFragment, Debug)]
#[cynic(
schema_path = "../schemas/starwars.schema.graphql",
query_module = "query_dsl",
graphql_type = "Root",
argument_struct = "FilmArguments"
)]
struct FilmDirectorQuery {
#[arguments(id = &args.id)]
film: Option<Film>,
}
#[derive(cynic::QueryFragment, Debug)]
#[cynic(
schema_path = "../schemas/starwars.schema.graphql",
query_module = "query_dsl",
graphql_type = "Film"
)]
struct Film {
title: Option<String>,
director: Option<String>,
}
#[derive(cynic::FragmentArguments)]
struct FilmArguments {
id: Option<cynic::Id>,
}
fn main() {
use cynic::{QueryBuilder, http::ReqwestBlockingExt};
let query = FilmDirectorQuery::build(&FilmArguments {
id: Some("ZmlsbXM6MQ==".into()),
})
reqwest::blocking::Client::new()
.post("https://swapi-graphql.netlify.com/.netlify/functions/index")
.run_graphql(query)
.unwrap()
}
mod query_dsl {
cynic::query_dsl!("../schemas/starwars.schema.graphql");
}

gql_client

スター47
ライセンスMITライセンス

Rust 用の最小限の GraphQL クライアントです。

使用例

use gql_client::Client;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let endpoint = "https://graphqlzero.almansi.me/api";
let query = r#"
query AllPostsQuery {
posts {
data {
id
}
}
}
"#;
let client = Client::new(endpoint);
let data: AllPosts = client.query::<AllPosts>(query).await.unwrap();
println!("{:?}" data);
Ok(())
}

Ruby

サーバー

graphql-ruby

最終リリース3年前
スター5k
ライセンスMITライセンス

GraphQL API を構築するための Ruby ライブラリです。

`graphql-ruby` で hello world スクリプトを実行するには

gem install graphql

次に、`hello.rb` にこのコードを入れて `ruby hello.rb` を実行します。

require 'graphql'
class QueryType < GraphQL::Schema::Object
field :hello, String
def hello
"Hello world!"
end
end
class Schema < GraphQL::Schema
query QueryType
end
puts Schema.execute('{ hello }').to_json

Relay と Rails のための優れたバインディングもあります。

Agoo

gemagoo
スター1k
ライセンスMITライセンス

GraphQL をサポートする高性能な Web サーバーです。Agoo は、GraphQL のシンプルで使いやすい API を目指しています。

require 'agoo'
class Query
def hello
'hello'
end
end
class Schema
attr_reader :query
def initialize
@query = Query.new()
end
end
Agoo::Server.init(6464, 'root', thread_count: 1, graphql: '/graphql')
Agoo::Server.start()
Agoo::GraphQL.schema(Schema.new) {
Agoo::GraphQL.load(%^type Query { hello: String }^)
}
sleep
# To run this GraphQL example type the following then go to a browser and enter
# a URL of localhost:6464/graphql?query={hello}
#
# ruby hello.rb

Rails GraphQL

最終リリース1ヶ月前
スター165
ライセンスMITライセンス

自然で Ruby らしい DSL に焦点を当てた、Rails アプリケーション向けの新しい GraphQL サーバーです。

require 'rails-graphql'
class GraphQL::AppSchema < GraphQL::Schema
query_fields do
field(:hello).resolve { 'Hello World!' }
end
end
puts GraphQL::AppSchema.execute('{ hello }')

簡潔さが何より重要です。ドキュメント を確認してください。

Swift / Objective-C

サーバー

Graphiti

最終リリース4ヶ月前
スター1k
ライセンスMITライセンス

GraphQLスキーマ/型を迅速、安全、簡単に構築するためのSwiftライブラリ。

GraphZahl

最終リリース2年前
スター数143
ライセンスMITライセンス

宣言型で、型安全な、ボイラープレートゼロのGraphQL APIを記述するためのSwiftライブラリ。

クライアント

Apollo iOS

最終リリース1週間前
スター4k
ライセンスMITライセンス

クエリ固有のSwift型として結果を返すiOS用GraphQLクライアントです。Xcodeと統合して、SwiftソースとGraphQLを並べて表示し、インラインで検証エラーを表示します。

SwiftGraphQL

最終リリース2ヶ月前
スター1k
ライセンスMITライセンス

GraphQLのことを忘れてしまえるGraphQLクライアント。

SwiftGraphQLは、Swiftコードジェネレーターと軽量なGraphQLクライアントです。Swiftを使用してクエリを作成でき、作成するすべてのクエリが有効であることが保証されます。

このライブラリは、3つのコア原則を中心に構築されています。

🚀 プロジェクトがコンパイルできれば、クエリは動作します。🦉 可能な限り、GraphQLではなくSwiftを使用します。🌳 アプリケーションモデルはスキーマから独立している必要があります。

SwiftGraphQLコードの簡単なプレビューを以下に示します。

import SwiftGraphQL
// Define a Swift model.
struct Human: Identifiable {
let id: String
let name: String
let homePlanet: String?
}
// Create a selection.
let human = Selection.Human {
Human(
id: try $0.id(),
name: try $0.name(),
homePlanet: try $0.homePlanet()
)
}
// Construct a query.
let query = Selection.Query {
try $0.humans(human.list)
}
// Perform the query.
send(query, to: "http://swift-graphql.heroku.com") { result in
if let data = try? result.get() {
print(data) // [Human]
}
}

Graphaello

最終リリース2年前
スター数494
ライセンスMITライセンス

GraphQLとApolloを使用して、宣言型で、型安全な、データ駆動型のSwiftUIアプリケーションを作成するためのツール。

GraphQL iOS

スター数62
ライセンスMITライセンス

iOS用のObjective-C GraphQLクライアント。

GraphQLite iOS

最終リリース5ヶ月前
スター5
ライセンスMITライセンス

GraphQLite iOS SDKは、GraphQLサーバーを簡単に操作するためのツールキットです。また、iOSアプリケーション開発を容易にするためのその他の機能も提供しています。

サーバー

absinthe

最終リリース2年前
スター4k
ライセンスその他

Elixir用のGraphQL実装。

FacebookのGraphQLのElixir実装。

クライアント

common_graphql_client

最終リリース3年前
スター43
ライセンスMITライセンス

HTTPとWebSocketをサポートするElixir GraphQLクライアント。

Elixir用のGraphQLクライアント。

サーバー

Sangria

最終リリース1ヶ月前
スター2k
ライセンスApache License 2.0

RelayをサポートするScala GraphQLライブラリ。

sangriaを使用したHello World GraphQLスキーマとクエリの例。

import sangria.schema._
import sangria.execution._
import sangria.macros._
val QueryType = ObjectType("Query", fields[Unit, Unit](
Field("hello", StringType, resolve = _ ⇒ "Hello world!")
))
val schema = Schema(QueryType)
val query = graphql"{ hello }"
Executor.execute(schema, query) map println

Caliban

最終リリース2週間前
スター1k
ライセンスApache License 2.0

Calibanは、ScalaでGraphQLサーバーとクライアントを構築するための関数型ライブラリです。最小限のボイラープレートと優れた相互運用性を提供します。

calibanを使用したシンプルなGraphQLスキーマとクエリの例。

import caliban._
import caliban.schema.Schema.auto._
// schema
case class Query(hello: String)
// resolver
val resolver = RootResolver(Query("Hello world!"))
val api = graphQL(resolver)
for {
interpreter <- api.interpreter
result <- interpreter.execute("{ hello }")
} yield result

クライアント

Caliban

最終リリース2週間前
スター1k
ライセンスApache License 2.0

Calibanは、ScalaでGraphQLサーバーとクライアントを構築するための関数型ライブラリです。クライアントコード生成と型安全なクエリを提供します。

calibanを使用してGraphQLクエリを定義して実行する例。

// define your query using Scala
val query: SelectionBuilder[RootQuery, List[CharacterView]] =
Query.characters {
(Character.name ~ Character.nicknames ~ Character.origin)
.mapN(CharacterView)
}
import sttp.client3._
// run the query and get the result already parsed into a case class
val result = query.toRequest(uri"http://someUrl").send(HttpClientSyncBackend()).body

Flutter

クライアント

graphql

最終リリース2ヶ月前
スター3k
ライセンスMITライセンス

FlutterでのGraphQLクライアント実装。

Ferry

スター1k
ライセンスMITライセンス

Ferryは、FlutterとDart用のシンプルで強力なGraphQLクライアントです。

サーバー

lacinia

スター2k
ライセンスその他

仕様への外部準拠を維持することを目指した、GraphQL仕様の完全な実装。

graphql-clj

スター数282
ライセンスEclipse Public License 1.0

GraphQL実装を提供するClojureライブラリ。

graphql-cljでHello World GraphQLクエリを実行するコード。

(def schema "type QueryRoot {
hello: String
}")
(defn resolver-fn [type-name field-name]
(get-in {"QueryRoot" {"hello" (fn [context parent & rest]
"Hello world!")}}
[type-name field-name]))
(require '[graphql-clj.executor :as executor])
(executor/execute nil schema resolver-fn "{ hello }")

alumbra

最終リリース6年前
スター数148
ライセンスMITライセンス

alumbra.specで指定されたデータ構造に準拠した、Clojure用の再利用可能なGraphQLコンポーネントのセット。

(require '[alumbra.core :as alumbra]
'[claro.data :as data])
(def schema
"type Person { name: String!, friends: [Person!]! }
type QueryRoot { person(id: ID!): Person, me: Person! }
schema { query: QueryRoot }")
(defrecord Person [id]
data/Resolvable
(resolve! [_ _]
{:name (str "Person #" id)
:friends (map ->Person (range (inc id) (+ id 3)))}))
(def QueryRoot
{:person (map->Person {})
:me (map->Person {:id 0})})
(def app
(alumbra/handler
{:schema schema
:query QueryRoot}))
(defonce my-graphql-server
(aleph.http/start-server #'app {:port 3000}))
$ curl -XPOST "http://0:3000" -H'Content-Type: application/json' -d'{
"query": "{ me { name, friends { name } } }"
}'
{"data":{"me":{"name":"Person #0","friends":[{"name":"Person #1"},{"name":"Person #2"}]}}}

クライアント

regraph

最終リリース1年前
スター数455
ライセンス不明

Websocketに対応したClojurescriptで実装されたGraphQLクライアント。

サーバー

Morpheus GraphQL

最終リリース10ヶ月前
スター数400
ライセンスMITライセンス

GraphQL API構築のためのHaskellライブラリ。

morpheus-graphqlを使ったHello world例

# schema.gql
""""
神聖で神聖視される超自然的存在
""""
type Deity {
name: String!
power: String @deprecated(reason: "no more supported")
}
type Query {
deity(name: String! = "Morpheus"): Deity!
}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
module API (api) where
import Data.ByteString.Lazy.Char8 (ByteString)
import Data.Morpheus (interpreter)
import Data.Morpheus.Document (importGQLDocument)
import Data.Morpheus.Types (RootResolver (..), Undefined (..))
import Data.Text (Text)
importGQLDocument "schema.gql"
rootResolver :: RootResolver IO () Query Undefined Undefined
rootResolver =
RootResolver
{ queryResolver = Query {deity},
mutationResolver = Undefined,
subscriptionResolver = Undefined
}
where
deity DeityArgs {name} =
pure
Deity
{ name = pure name,
power = pure (Just "Shapeshifting")
}
api :: ByteString -> IO ByteString
api = interpreter rootResolver

より高度なAPIについては、morpheus-graphql-examples を参照してください。

Mu-HaskellとMu-GraphQL

最終リリース3年前
スター325
ライセンスApache License 2.0

マイクロサービス(gRPC、HTTP)とGraphQL APIを構築するためのHaskellライブラリです。

スキーマの自動生成された型レベル表現によるGraphQLサーバーの実装例

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PartialTypeSignatures #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
-- imports omitted for brevity...
graphql "Library" "library.graphql" -- all the magic happens here! 🪄🎩
-- ... a bit more code...
libraryServer :: SqlBackend -> ServerT ObjectMapping i Library ServerErrorIO _
libraryServer conn =
resolver
( object @"Book"
( field @"id" bookId,
field @"title" bookTitle,
field @"author" bookAuthor,
field @"imageUrl" bookImage
),
object @"Author"
( field @"id" authorId,
field @"name" authorName,
field @"books" authorBooks
),
object @"Query"
( method @"authors" allAuthors,
method @"books" allBooks
),
object @"Mutation"
( method @"newAuthor" newAuthor,
method @"newBook" newBook
),
object @"Subscription"
(method @"allBooks" allBooksConduit)
)
where
bookId :: Entity Book -> ServerErrorIO Integer
bookId (Entity (BookKey k) _) = pure $ toInteger k
-- ... more resolvers...

独自のGraphQLサーバーの構築方法の詳細については、ドキュメント を、エンドツーエンドの例(Elmで記述されたクライアントを含む)については、ライブラリの例 を参照してください。!

graphql-w-persistent

スター10
ライセンス不明

SQLを使用したリレーショナルデータベーススキーマを抽象化し、GraphQLでクエリを実行し、GraphQLの結果を返すための完全なライブラリツールセットです。

ワンタイムセットアップ:スキーマの構築、マイクロサービスまたはサーバー内へのデプロイ、GraphQLを使用したSQLデータベースのクエリ!

クライアント

morpheus-graphql-client

最終リリース10ヶ月前
スター数400
ライセンスMITライセンス

Haskellで実装された厳密に型付けされたGraphQLクライアントです。

C / C++

ツール

libgraphqlparser

最終リリース6年前
スター1k
ライセンスMITライセンス

CおよびC++ APIを備えたC++のGraphQLクエリ言語パーサーです。

OCaml / Reason

サーバー

ocaml-graphql-server

最終リリース1年前
スター1k
ライセンスMITライセンス

OCamlおよびReason用のGraphQLサーバーライブラリ

Erlang

サーバー

graphql-erlang

最終リリース5年前
スター数313
ライセンスその他

Erlangで実装されたGraphQL。

サーバー

ballerina-graphql

最新リリース4週間前
スター数144
ライセンスApache License 2.0

GraphQLサービスを作成するためのBallerina標準ライブラリパッケージ。

ballerina-graphqlのHelloWorldサーバーを実行するには

  • Ballerina言語をダウンロードしてインストールします。
  • 次に、graphql_service.balファイルに以下のコードを記述し、bal run graphql_service.balを実行してサービスを実行します。
import ballerina/graphql;
service /graphql on new graphql:Listener(9090) {
resource function get hello() returns string {
return "Hello, world!";
}
}

機能#

  • Ballerinaのserviceおよびlistenerモデルを使用して構築されており、これらはBallerinaではファーストクラスの市民です。
  • WebSocket経由のサブスクリプションをサポートします(追加のライブラリは不要です)。
  • ファイルアップロードをサポートします。
  • ビルトインのGraphiQLクライアント。

クライアント

ballerina-graphql

最新リリース4週間前
スター数144
ライセンスApache License 2.0

GraphQLサービスを利用するためのBallerina標準ライブラリパッケージ。

ballerina-graphqlクライアントを実行するには

  • Ballerina言語をダウンロードしてインストールします。
  • 次に、graphql_client.balファイルに以下のコードを記述し、bal run graphql_client.balを実行してサービスを実行します。
import ballerina/graphql;
import ballerina/io;
type Response record {
record { string hello; } data;
};
public function main() returns error? {
graphql:Client helloClient = check new ("localhost:9090/graphql");
string document = "{ hello }";
Response response = check helloClient->execute(document);
io:println(response.data.hello);
}

機能#

  • Ballerinaの型推論による依存型付きのレスポンス取得。
  • カスタムクライアント生成のサポート。

Julia

クライアント

Diana.jl

最終リリース1年前
スター数112
ライセンスMITライセンス

JuliaによるGraphQLサーバー実装。

GraphQLClient.jl

最終リリース1年前
スター数46
ライセンスその他

GraphQLサーバーとのシームレスな統合のためのJulia GraphQLクライアント。

  • クエリ文字列を手動で記述しない限り(必要な場合を除く)、クエリミューテーションサブスクリプションが可能。!)
  • レスポンスをJulia型に直接逆シリアル化します。
  • GraphQLオブジェクトからJulia型の構築
  • イントロスペクションを使用してクエリを支援します。

クイックスタート#

Juliaのパッケージマネージャーを使用してインストールします。

using Pkg; Pkg.add("GraphQLClient")
using GraphQLClient

サーバーに接続します。

client = Client("https://countries.trevorblades.com")

GraphQLオブジェクトからJulia型を構築します。

Country = GraphQLClient.introspect_object(client, "Country")

サーバーにクエリを実行し、レスポンスをこの新しい型に逆シリアル化します。

response = query(client, "countries", Vector{Country}, output_fields="name")

または、クエリ文字列を手動で記述します。

query_string = """
{
countries{
name
}
}"""
response = GraphQLClient.execute(client, query_string)

R

サーバー

ghql

最新リリース4年前
スター数141
ライセンスその他

汎用GraphQL Rクライアント。

Groovy

サーバー

gorm-graphql

最終リリース3ヶ月前
スター数80
ライセンスApache License 2.0

GORM向けの自動GraphQLスキーマジェネレーター。

コアライブラリ - GORM GraphQLライブラリは、GORMエンティティに基づいてGraphQLスキーマを生成する機能を提供します。ドメインクラスをGraphQLスキーマにマッピングすることに加えて、コアライブラリはスキーマの実行を通じてデータのクエリ、更新、削除を行う「データフェッチャー」のデフォルト実装も提供します。

Grailsプラグイン - コアライブラリに加えて、GORM GraphQL Grailsプラグインは

  • ガイドラインに基づいて、HTTPを介してGraphQLリクエストを受信および応答するコントローラーを提供します。

  • 起動時にスプリングビーン構成でスキーマを生成して、拡張を容易にします。

  • 開発時にデフォルトで有効になっているGraphiQLブラウザが含まれています。ブラウザは/graphql/browserでアクセスできます。

  • Grailsが提供するデータバインディングを使用するために、デフォルトのデータバインダーをオーバーライドします。

  • GraphQLエンドポイントの統合テストを容易にするためのトレイトを提供します。

詳細については、ドキュメントを参照してください。

GQL

最終リリース1年前
スター47
ライセンスApache License 2.0

GQLは、GraphQLのためのGrooveライブラリです。

Perl

サーバー

graphql-perl

スター数70
ライセンス不明

GraphQLリファレンス実装のPerlポート。

Elm

クライアント

GraphQLエンドポイントに対して型安全なElmコードを作成するためのライブラリとコマンドラインコードジェネレーター。

D

サーバー

Dプログラミング言語向けのGraphQL実装。

ゲートウェイ/スーパーグラフ

WunderGraph

最終リリース1週間前
スター2k
ライセンスApache License 2.0

WunderGraphは、Apollo Federation、GraphQL、REST API、データベース、Kafkaなどを合成できるオープンソースのGraphQLゲートウェイです。

WunderGraphは、すべてのAPIを単一の統合GraphQL APIに合成し、グラフを安全で型安全なJSON-RPC APIとして公開できます。

WunderGraphを使い始めるには、create-wundergraph-appを使用して新しいプロジェクトをブートストラップできます。

npx create-wundergraph-app my-project -E nextjs-swr

クライアント側では、WunderGraphのJSON-RPC APIはNext.js、SWR、React Queryなどのフレームワークと非常にうまく統合されます。一方、バックエンドでは、「サーバーサイドのみのGraphQL」の力を活用できます。クエリレイヤーで認証、承認、検証、結合などを処理します。

mutation (
$name: String! @fromClaim(name: NAME)
$email: String! @fromClaim(name: EMAIL)
$message: String! @jsonSchema(pattern: "^[a-zA-Z 0-9]+$")
) {
createOnepost(
data: {
message: $message
user: {
connectOrCreate: {
where: { email: $email }
create: { email: $email, name: $name }
}
}
}
) {
id
message
user {
id
name
}
}
}

上記のクエリでは、ユーザーの認証が必要であり、JWTトークンからユーザーの名前とメールアドレスを挿入し、JSONスキーマに対してメッセージを検証します。

これは、WunderGraphの独自の結合機能を使用してサーバーサイドGraphQLをどのように使用できるかを示す別の例です。2つの異なるAPIからのデータを単一のGraphQLレスポンスに合成します。

query (
$continent: String!
# the @internal directive removes the $capital variable from the public API
# this means, the user can't set it manually
# this variable is our JOIN key
$capital: String! @internal
) {
countries_countries(filter: { continent: { eq: $continent } }) {
code
name
# using the @export directive, we can export the value of the field `capital` into the JOIN key ($capital)
capital @export(as: "capital")
# the _join field returns the type Query!
# it exists on every object type so you can everywhere in your Query documents
_join {
# once we're inside the _join field, we can use the $capital variable to join the weather API
weather_getCityByName(name: $capital) {
weather {
temperature {
max
}
summary {
title
description
}
}
}
}
}
}

完全な例はGitHubにあります

一般

quicktype

スター11k
ライセンスApache License 2.0

TypeScript、Swift、golang、C#、C++などでGraphQLクエリの型を生成します。

GraphQL Code Generator

最終リリース3週間前
スター11k
ライセンスMITライセンス

Typescript(フロントエンドとバックエンド)、React Hooks、リゾルバーシグネチャなど、カスタムプラグインとテンプレートを柔軟にサポートするGraphQLコードジェネレーターです。

Schemathesis

最終リリース2週間前
スター2k
ライセンスMITライセンス

OpenAPIおよびGraphQL仕様を使用して構築されたWebアプリケーション向けの最新のAPIテストツール。

Docker経由でGraphQLエンドポイントに対してSchemathesisを実行します。

docker run schemathesis/schemathesis \
run https://your.app.com/graphql

Schemathesisは、GraphQLスキーマに一致するクエリを生成し、サーバークラッシュを自動的に検出します。生成されたクエリは任意の深さで、入力スキーマで定義されているGraphQL型の任意のサブセットを含めることができます。それらは、そうでなければ見つかりにくいコードのエッジケースを明らかにします。

アプリケーションは任意のプログラミング言語で記述できます。このツールはHTTPを介して通信します。

たとえば、上記のcommandをhttps://bahnql.herokuapp.com/graphqlに対して実行すると、{ search(searchTerm: "") { stations { name } } }クエリを実行するとサーバーエラーが発生することがわかります。

{
"errors": [
{
"message": "Cannot read property 'city' of undefined",
"locations": [
{
"line": 1,
"column": 28
}
],
"path": [
"search",
"stations"
]
}
],
"data": null
}

Microcks

スター1k
ライセンスApache License 2.0

APIモッキングとテストのためのオープンソースのKubernetesネイティブツール。

Microcksは、APIとマイクロサービスのアセット(_GraphQLスキーマ_、_OpenAPI仕様_、_AsyncAPI仕様_、_gRPC protobuf_、_Postmanコレクション_、_SoapUIプロジェクト_)を- 数秒でライブシミュレーションに変換するためのプラットフォームです。

また、これらのアセットを再利用して、API実装に対するコンプライアンステストと非回帰テストを実行します。シンプルなCLIを介して、_Jenkins_、_GitHub Actions_、_Tekton_などとの統合を提供します。

gqt

スター数455
ライセンスMITライセンス

ターミナルでGraphQLクエリを構築して実行します。

GraphQLエンドポイントに対してgqtを実行します。直感的なTUIでクエリを構築して実行します。サーバーからのレスポンスは標準出力に書き込まれます。

gqt -e https://your.app.com/graphql

GraphQL Armor

最終リリース2ヶ月前
スター数453
ライセンスMITライセンス

Apollo GraphQLおよびYoga/Envelopサーバー向けの、欠けていたGraphQLセキュリティレイヤー。

サービス#

Webinyを使用すると、AWS LambdaとDynamoDBの上にビルトインのスキャフォールドを使用して、GraphQL APIを迅速に構築できます。Webinyには、ノーコードエクスペリエンスのための既製のヘッドレスGraphQL CMSも含まれています。

Typettaは、TypeScriptで記述されたオープンソースのORMであり、主要なSQLデータベース(MySQL、PostgreSQL、Microsoft SQL Server、SQLLite3、CockroachDB、MariaDB、OracleおよびAmazon Redshift)とNoSQLデータベースMongoDBへの型付きの方法でのシームレスなデータアクセスを目指しています。

Tykは、軽量のオープンソースAPI管理ゲートウェイであり、Golangで記述された独自のGraphQLエンジンを使用して、GraphQLを中心とした完全なAPIライフサイクル管理を構築しています。Universal Data Graph (UDG)GraphQL Federation、およびGraphQL Subscriptionを通じて、複数のGraphQLおよび/またはREST APIのスキーマスティッチングをサポートしています。

強力な編集ツールを使用してコンテンツを作成し、GraphQLまたはREST APIからどこからでもアクセスできるSaaS(サービスとしてのソフトウェア)コンテンツ管理システム。

データソース(RESTとデータベース)、サードパーティAPI、またはそれらの組み合わせに基づいて、サーバーレスGraphQL APIを作成します。GraphQLサーバーを自分で記述する代わりに、GraphQLスキーマを記述することで、すべてを宣言的に定義できます。詳細については、https://www.stepzen.com/を参照してください。

組み込みのデータローダーを備えた、次世代のNode.jsおよびTypeScript ORM。GraphQLバックエンドの構築に使用できます。詳細については、https://prisma.dokyumento.jp/graphqlを参照してください。

APIスクリプティング、自動化、共同作業スペース、GraphQL APIのテストと開発のための包括的なサポートなどの機能を備えた、堅牢なマルチプロトコルAPIクライアントです。

機能およびパフォーマンスの問題を見つけるためのGraphQL分析および監視サービスです。

強力なコンテンツパーソナライズとスケジューリング機能、最新のコンテンツ編集エクスペリエンス、そして非常に高速なGraphQL/RESTコンテンツ配信APIを組み合わせたヘッドレスCMS(コンテンツ管理システム)です。

Insomniaは、GraphQL、REST、およびgRPCに対応したオープンソースのクロスプラットフォームAPIクライアントです。使いやすいインターフェースと、認証ヘルパー、コード生成、環境変数などの高度な機能を組み合わせています。

Hygraphは、スタックの真の構成可能性を可能にするフェデレーテッドコンテンツプラットフォームです。独自のコンテンツフェデレーションアプローチですべてのサービスを統合し、単一の強力なGraphQL APIを使用して、どこからでもどこへでもコンテンツを配信します。

Hasuraは、データベースとマイクロサービスに接続し、すぐに本番環境で使用できるGraphQL APIを提供します。

GraphQLエンドポイントで数十のテストを実行するための、高速で無料のセキュリティスキャンです。ログインは不要です。

graphapi®は、安全なローコードGraphQL-as-a-serviceプラットフォームです。入力データモデルに基づいて、GraphQLスキーマ、すべてのレゾルバー、およびデータベーススタックを自動生成します。さらに、チームがデータを管理できるユーザーインターフェースを提供します。詳細については、https://graphapi.comを参照してください。

GraphQLバックエンドを簡単に作成できます。スキーマファーストのアプローチを使用して、バックエンドを宣言的に構築します。強力なディレクティブとスカラーを活用することで、開発を加速し、ボイラープレートコードを削減します。

gqlスキーマをインポートすることで、インスタントGraphQLバックエンドを作成できます。データベースは関係とインデックスを自動的に作成するため、データベースコードを記述することなく、数秒でクエリを実行できます。サーバーレス価格、無料で開始できます。

ライブGraphQLセキュリティとコンプライアンス。GraphQLエンドポイントが本番環境で使用できることを確認します。開発中に。設定は不要です。すべての言語とフレームワークをサポートしています。無料で開始できます。

JPAアノテーション付きデータモデルを、任意のリレーショナルデータベース上のGraphQLサービスとして公開できるJavaライブラリです。

Dgraph

Dgraphは、グラフバックエンドを持つネイティブGraphQLデータベースです。これは、DgraphがPostgresなどの既存のデータベースの上位インターフェースではなく、GraphQLのためにゼロから設計されていることを意味します。速度とパフォーマンスが最適化されており、最良の結果を得るために、複数のコンピューターサイエンスのブレイクスルーに依存しています。Dgraph Cloudは、インフラストラクチャを心配することなく、より高速に反復できる、完全に管理されたGraphQLバックエンドサービスです。

Dgraph Cloudではなく、ローカルでLinux上で実行する場合のインストール手順

docker pull dgraph/standalone
mkdir -p ~/dgraph
docker run -it -p 5080:5080 -p 6080:6080 -p 8080:8080 \
-p 9080:9080 -p 8000:8000 -v ~/dgraph:/dgraph --name dgraph \
dgraph/standalone:master

GraphQLスキーマを設定する

touch schema.graphql
nano schema.graphql
type Product {
id: ID!
name: String! @id
reviews: [Review] @hasInverse(field: about)
}
type Customer {
username: String! @id
reviews: [Review] @hasInverse(field: by)
}
type Review {
id: ID!
about: Product!
by: Customer!
comment: String @search(by: [fulltext])
rating: Int @search
}
curl -X POST localhost:8080/admin/schema --data-binary '@schema.graphql'

お好みのGraphQLクライアントをhttp://localhost:8080/graphqlに接続して、ミューテーションとクエリを実行します。

mutation {
addProduct(input: [{ name: "Dgraph" }, { name: "Dgraph Cloud" }]) {
product {
id
name
}
}
addCustomer(input: [{ username: "TonyStark" }]) {
customer {
username
}
}
}
mutation {
addReview(
input: [
{
by: { username: "TonyStark" }
about: { name: "Dgraph" }
comment: "Fantastic, easy to install, worked great. Best GraphQL server available"
rating: 10
}
]
) {
review {
id
comment
rating
by {
username
}
about {
id
name
}
}
}
}
query {
queryReview(filter: { comment: { alloftext: "server easy install" }, rating: { gt: 5 } }) {
comment
by {
username
reviews(order: { desc: rating }, first: 10) {
about {
name
reviews(order: { asc: rating, first: 5 }) {
by { username }
comment
rating
}
}
rating
}
}
about {
name
}
}
}

ChilliCreamによる、GraphQL APIの探索、管理、テストを可能にする機能豊富なGraphQL IDEです。 こちらで確認してください。

オープンソースのParse Platformをベースとした、フルマネージドのGraphQLバックエンドです。リレーショナルデータを保存およびクエリし、クラウド関数などをGraphQL API経由で実行できます。無料で始められます。

リアルタイムサブスクリプション、オフラインプログラミングと同期、エンタープライズセキュリティ機能、およびきめ細かい認可制御を備えた、フルマネージドのGraphQLサービスです。

組織のデータグラフの構築、検証、監視、保護を支援するクラウドサービスです。

Apache APISIXは、ロードバランシング、動的アップストリーム、カナリアリリース、可観測性など、豊富なトラフィック管理機能を提供する、動的でリアルタイム、高性能なAPIゲートウェイです。クラウドネイティブなAPIゲートウェイとして、Apache APISIXは設計当初からGraphQL構文をサポートしています。リクエストに含まれるGraphQLステートメントを効率的に照合することで、異常なトラフィックをフィルタリングし、セキュリティをさらに強化できます。詳細については、APIゲートウェイApache APISIXでのGraphQLの使い方をご覧ください。

Salesforce、HubSpot、Microsoft Dynamics、Pipedriveなど、多くのAPIにまたがるデータのクエリと変更を行うためのGraphQL APIです。

Postmanの代替として、GraphQLクエリの直接編集とGraphQLスキーマの自動読み込みをサポートしています。

このページを改善したいですか? ドキュメントはこちら.