Là một dự án API, graphql/graphql-js đã đạt 20.3k sao trên GitHub, ngôn ngữ TypeScript. A reference implementation of GraphQL for JavaScript
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
The JavaScript reference implementation for GraphQL, a query language for APIs created by Facebook.
See more complete documentation at https://graphql.org/ and
https://graphql.org/graphql-js/.
Looking for help? Find resources from the community.
Getting Started
A general overview of GraphQL is available in the
README for the
Specification for GraphQL. That overview
describes a simple set of GraphQL examples that exist as tests
in this repository. A good way to get started with this repository is to walk
through that README and the corresponding tests in parallel.
Using GraphQL.js
Install GraphQL.js from npm
With npm:
npm install --save graphql
With yarn:
yarn add graphql
With bun:
bun add graphql
GraphQL.js provides two important capabilities: building a type schema and
serving queries against that type schema.
First, build a GraphQL type schema which maps to your codebase.
import {
graphql,
GraphQLSchema,
GraphQLObjectType,
GraphQLString,
} from 'graphql';
var schema = new GraphQLSchema({
query: new GraphQLObjectType({
name: 'RootQueryType',
fields: {
hello: {
type: GraphQLString,
resolve() {
return 'world';
},
},
},
}),
});
This defines a simple schema, with one type and one field, that resolves
to a fixed value. The resolve function can return a value, a promise,
or an array of promises. A more complex example is included in the top-level tests directory.
Then, serve the result of a query against that type schema.
This runs a query fetching the one field defined. The graphql function will
first ensure the query is syntactically and semantically valid before executing
it, reporting errors otherwise.
The npm branch in this repository is automatically maintained to be the last
commit to 17.x.x to pass all tests, in the same form found on npm. It is
recommended to use builds deployed to npm for many reasons, but if you want to use
the latest not-yet-released version of graphql-js, you can do so by depending
directly on this branch:
GraphQL.js is a general-purpose library and can be used both in a Node server
and in the browser. As an example, the GraphiQL
tool is built with GraphQL.js!
Building a project using GraphQL.js with webpack or
rollup should just work and only include
the portions of the library you use. This works because GraphQL.js is distributed
with both CommonJS (require()) and ESModule (import) files. The exports
map within the project package.json should direct runtimes and bundlers to
the appropriate files. Tools that do not support exports will find the CommonJS
and ESModule builds side by side, with the CommonJS code packaged
in files with the .js extension and the ESModule build within .mjs files.
Contributing
We actively welcome pull requests. Learn how to contribute.
This repository is managed by EasyCLA. Project participants must sign the free GraphQL Specification Membership agreement before making a contribution. You only need to do this one time, and it can be signed by individual contributors or their employers.
To initiate the signature process please open a PR against this repo. The EasyCLA bot will block the merge if we still need a membership agreement from you.
You can find detailed information here. If you have issues, please email [email protected].
If your company benefits from GraphQL and you would like to provide essential financial support for the systems and people that power our community, please also consider membership in the GraphQL Foundation.
Changelog
Changes are tracked as GitHub releases.
License
GraphQL.js is MIT-licensed.
Version Support
GraphQL.JS follows Semantic Versioning (SemVer) for its releases. Our version support policy is as follows:
Latest Major Version: We provide full support, including bug fixes and security updates, for the latest major version of GraphQL.JS.
Previous Major Version: We offer feature support for the previous major version for 12 months after the release of the newest major version.
This means that for 12 months we can backport features for specification changes if they don't cause any breaking changes. We'll continue
supporting the previous major version with bug and security fixes.
Older Versions: Versions older than the previous major release are considered unsupported. While the code remains available,
we do not actively maintain or provide updates for these versions.
One exception to this rule is when the older version has been released < 1 year ago, in that case we
will treat it like the "Previous Major Version".
Long-Term Support (LTS)
We do not currently offer a Long-Term Support version of GraphQL.JS. Users are encouraged to upgrade to the latest stable version
to receive the most up-to-date features, performance improvements, and security updates.
End-of-Life (EOL) Schedule
We will announce the EOL date for a major version at least 6 months in advance.
After a version reaches its EOL, it will no longer receive updates, even for critical security issues.
Upgrade Assistance
To assist users in upgrading to newer versions:
We maintain detailed release notes for each version, highlighting new features, breaking changes, and deprecations.
Our documentation includes migration guides for moving between major versions.
The community forum (Discord channel #graphql-js) is available for users who need additional assistance with upgrades.
Security Updates
We prioritize the security of GraphQL.JS:
Critical security updates will be applied to both the current and previous major version.
For versions that have reached EOL, we strongly recommend upgrading to a supported version to receive security updates.
Community Contributions
We welcome community contributions for all versions of GraphQL.JS. However, our maintainers will primarily focus on reviewing
and merging contributions for supported versions.
graphql/graphql-js thuộc nhóm API trên TopGit, cùng 2 topic GitHub. Trang Trending và Topics liệt kê các repo cùng số sao và cùng ngôn ngữ để so sánh.
Đọc thêm về graphql/graphql-js ở đâu?
Trang TopGit này là một snapshot — tab "Readme" hiển thị nguyên văn README của repo (đã bỏ link, giữ ảnh). Repo GitHub ở github.com/graphql/graphql-js là nguồn chính thức.
graphql/graphql-js có bao nhiêu sao?
graphql/graphql-js có 20.3k sao GitHub — tải lại trang để xem số mới nhất, hoặc xem trực tiếp github.com/graphql/graphql-js. TopGit phản chiếu số sao của GitHub nhưng không cam kết đến từng phút.
graphql/graphql-js có những chủ đề gì?
GitHub topics của graphql/graphql-js: "graphql", "graphql-js". TopGit xếp repo vào nhóm API.
graphql/graphql-js có phải mã nguồn mở không?
Có — graphql/graphql-js phát hành theo license MIT, nghĩa là mã nguồn mở để đọc, fork và (tùy license) tái sử dụng. Mã: github.com/graphql/graphql-js.
graphql/graphql-js có trang demo không?
Dự án có trang chủ ở http://graphql.org/graphql-js/. Tab "Readme" ở trang này thường có ảnh chụp và hướng dẫn bắt đầu nhanh.
graphql/graphql-js còn đang phát triển không?
Commit gần nhất trên graphql/graphql-js là 9 ngày trước (theo timestamp GitHub). Repo có 2.1k fork — một chỉ báo về mức độ quan tâm của cộng đồng.
Đọc đầy đủ README ở tab phía trên.
graphql-js có đáng để bạn bỏ thời gian?
ChatGPT, Claude và Perplexity đều đọc được trang này. Hỏi thử xem họ nghĩ gì về graphql-js.