数据API 案例 开发者 关于
掌握聚合最新动态了解行业最新趋势
API接口,开发服务,免费咨询服务
新闻动态 > 媒体报道

Apollo服务器1.0版——为所有Node.js平台上的框架所创建的GraphQL模式服务器

本文由chaussen在众成翻译平台翻译。

经过一年多的开发、测试和实际使用,今天我们自豪地宣布Apollo Server服务器1.0版本发布了!

我们刚刚宣布,对于大多数应用程序,用户可以免费使用Apollo Optics性能分析工具,免费查询量每个月最高一百万!试试Optics这个分析工具吧,它能将GraphQL服务器的API接口图形化,并能对接口进行监控与追踪。

Apollo服务器的原则

Apollo服务器是一个由网络社区维护的开源GraphQL模式服务器。它能运行所有Node.js平台上的的HTTP服务框架,包括Express,Connect,Hapi,Koa,AWS Lambda,Restify和Micro模块。这个服务器是在graphql-js项目基础上构建的,而graphql-js是GraphQL模式的JavaScript语言引用实现。

我们制作Apollo服务器程序,始终牢记以下原则:

  • 人人为我,我为人人:Apollo服务器程序开发是由开发者需求所推动的。

  • 简洁:所有的部分都简单些,使Apollo服务器程序很容易使用,项目很容易参与,也更安全。

  • 性能:Apollo服务器程序要经过妥善的测试,并可以直接投入到产品上去,无需修改。

这些原则,在项目一开始我们就详细地公布了出来,很高兴今天直到今天我们还在坚持这些原则。

从零到四千

Apollo服务器程序的开发最初就是由社区所推动的,整个过程现在看来非常令人激动。在一年多的时间里,这个项目从零开始,到现在拥有45个协助开发人员,超过600个提交,NPM下载数增长到了差不多每天四千

NPM上Apollo服务器下载数量

将这个服务器投入到产品中使用的机构中,可能有些名字大家都认得:

这些仅仅是我们所知道的,但不知道还有没有别的。如果你的公司也用Apollo服务器程序却没有被提到,就留言告诉我们吧!

如果目前没有使用,但想试一试,那请读一下正文部分来学一下如何设置。

如何开始

如果需要更深度的介绍,了解如何设立GraphQL服务器,并把它与SQL,Mongo或REST后台连接起来,我强烈推荐学一下我们最近更新过的教程:如何建立一个GraphQL服务器。这是我们博客上目前为止浏览最多的帖子!

如果之前用过Apollo服务器,那还有一点:大家可能注意到了,我们现在引入时用的NPM模块,它们的名字都以apollo-server-开头,而不再是graphql-server-了。我们觉得这个命名方面的变动能更好地体现出这个服务器是Apollo项目及其应用库系列的一部分。

先为服务器设置好GraphQL模式结构,比如可以用graphql-tools之类的工具。接下来就可以轻松使用Apollo服务器了:

import express from 'express';
import bodyParser from 'body-parser';
import {
  graphqlExpress,
  graphiqlExpress
} from '**apollo-server-express**';

const myGraphQLSchema = // ... 这里可以定义或引入自己的模式结构
const PORT = 3000;

const app = express();

// POST请求需要用这个bodyParser语法分析器
app.use('/graphql', bodyParser.json(), **graphqlExpress**({ schema: myGraphQLSchema }));
// GraphiQL可以通过http://localhost:3000/graphiql访问
app.use('/graphiql', **graphiqlExpress**({ endpointURL: '/graphql' }));
app.listen(PORT);

这个例子服务器使用Express模块,不过用别的模块整合时基本是一样的。看看帮助文档或者说明,了解如何用Hapi,Koa,Lambda,Restify或Micro模块来设置Apollo服务器吧!

特别感谢所有协助过我们的人!

有很多人为这个项目出过力,1.0版的Apollo服务器没有大家的辛苦努力是绝不可能成功的。尤其是Hagai Cohen和Nick Nance,他们的贡献非常突出。

当我们还在为Apollo服务器之后的发展打基础时,Nick就已经参与进来了。大部分Hapi与Micro模块的整合部分是由他写的。如果不是他,这个项目可能都无法开始。谢谢你,Nick!

Hagai参与得稍晚些,他对Apollo服务器作过了一些改变,服务器才能成为今天这个样子。他将项目移植到了Lerna管理平台上, 项目中很大一部分基础代码由他进行了重构,并且在超过半年时间里,他还是这个项目的主要维护员。没有他的话,Apollo服务器是不可能像今天那样棒的。谢谢你,Hagai!

另外,去年的开发过程中还有许多人为项目作出过贡献。他们的贡献无论大小,都对项目起到了作用。谢谢你们,stubailoNeoReyadHriBBnicolaslopezjUrigodotansimhaconrad-vanlspicydonutstimneutkenscreatorkuangTallybkamilkisielasoda0289kievechuardreyn1mmyNeoPhitrotzigjadkapRafaelCosmanpapandreouClaudiuCeiaphranevirbeNode.jsamnpradelxeoneuxdahjellesiegesmundsammkjod1kpcarrierDattayalarswAlexLeungalanchristensenChris-R3ephemerthebigredgeekcomusblakeembreyomegablitz!

今后的路

Apollo服务器是一个网络社区开发的项目,所以如果大家有什么想法或发现了错误,请在GitHub上大胆地提出问题,或发送合并请求!

我们总是在寻求更多的协助人员和维护人员,所以如果觉得这个项目适合自己,请在Apollo Slack群里的#协助者(contributors)频道上告诉我们,或直接在GitHub上给我们留言吧!

原文来自:众成翻译

掌握聚合最新动态了解行业最新趋势
API接口,开发服务,免费咨询服务
新闻动态 > 媒体报道
Apollo服务器1.0版——为所有Node.js平台上的框架所创建的GraphQL模式服务器
发布:2017-10-30

本文由chaussen在众成翻译平台翻译。

经过一年多的开发、测试和实际使用,今天我们自豪地宣布Apollo Server服务器1.0版本发布了!

我们刚刚宣布,对于大多数应用程序,用户可以免费使用Apollo Optics性能分析工具,免费查询量每个月最高一百万!试试Optics这个分析工具吧,它能将GraphQL服务器的API接口图形化,并能对接口进行监控与追踪。

Apollo服务器的原则

Apollo服务器是一个由网络社区维护的开源GraphQL模式服务器。它能运行所有Node.js平台上的的HTTP服务框架,包括Express,Connect,Hapi,Koa,AWS Lambda,Restify和Micro模块。这个服务器是在graphql-js项目基础上构建的,而graphql-js是GraphQL模式的JavaScript语言引用实现。

我们制作Apollo服务器程序,始终牢记以下原则:

  • 人人为我,我为人人:Apollo服务器程序开发是由开发者需求所推动的。

  • 简洁:所有的部分都简单些,使Apollo服务器程序很容易使用,项目很容易参与,也更安全。

  • 性能:Apollo服务器程序要经过妥善的测试,并可以直接投入到产品上去,无需修改。

这些原则,在项目一开始我们就详细地公布了出来,很高兴今天直到今天我们还在坚持这些原则。

从零到四千

Apollo服务器程序的开发最初就是由社区所推动的,整个过程现在看来非常令人激动。在一年多的时间里,这个项目从零开始,到现在拥有45个协助开发人员,超过600个提交,NPM下载数增长到了差不多每天四千

NPM上Apollo服务器下载数量

将这个服务器投入到产品中使用的机构中,可能有些名字大家都认得:

这些仅仅是我们所知道的,但不知道还有没有别的。如果你的公司也用Apollo服务器程序却没有被提到,就留言告诉我们吧!

如果目前没有使用,但想试一试,那请读一下正文部分来学一下如何设置。

如何开始

如果需要更深度的介绍,了解如何设立GraphQL服务器,并把它与SQL,Mongo或REST后台连接起来,我强烈推荐学一下我们最近更新过的教程:如何建立一个GraphQL服务器。这是我们博客上目前为止浏览最多的帖子!

如果之前用过Apollo服务器,那还有一点:大家可能注意到了,我们现在引入时用的NPM模块,它们的名字都以apollo-server-开头,而不再是graphql-server-了。我们觉得这个命名方面的变动能更好地体现出这个服务器是Apollo项目及其应用库系列的一部分。

先为服务器设置好GraphQL模式结构,比如可以用graphql-tools之类的工具。接下来就可以轻松使用Apollo服务器了:

import express from 'express';
import bodyParser from 'body-parser';
import {
  graphqlExpress,
  graphiqlExpress
} from '**apollo-server-express**';

const myGraphQLSchema = // ... 这里可以定义或引入自己的模式结构
const PORT = 3000;

const app = express();

// POST请求需要用这个bodyParser语法分析器
app.use('/graphql', bodyParser.json(), **graphqlExpress**({ schema: myGraphQLSchema }));
// GraphiQL可以通过http://localhost:3000/graphiql访问
app.use('/graphiql', **graphiqlExpress**({ endpointURL: '/graphql' }));
app.listen(PORT);

这个例子服务器使用Express模块,不过用别的模块整合时基本是一样的。看看帮助文档或者说明,了解如何用Hapi,Koa,Lambda,Restify或Micro模块来设置Apollo服务器吧!

特别感谢所有协助过我们的人!

有很多人为这个项目出过力,1.0版的Apollo服务器没有大家的辛苦努力是绝不可能成功的。尤其是Hagai Cohen和Nick Nance,他们的贡献非常突出。

当我们还在为Apollo服务器之后的发展打基础时,Nick就已经参与进来了。大部分Hapi与Micro模块的整合部分是由他写的。如果不是他,这个项目可能都无法开始。谢谢你,Nick!

Hagai参与得稍晚些,他对Apollo服务器作过了一些改变,服务器才能成为今天这个样子。他将项目移植到了Lerna管理平台上, 项目中很大一部分基础代码由他进行了重构,并且在超过半年时间里,他还是这个项目的主要维护员。没有他的话,Apollo服务器是不可能像今天那样棒的。谢谢你,Hagai!

另外,去年的开发过程中还有许多人为项目作出过贡献。他们的贡献无论大小,都对项目起到了作用。谢谢你们,stubailoNeoReyadHriBBnicolaslopezjUrigodotansimhaconrad-vanlspicydonutstimneutkenscreatorkuangTallybkamilkisielasoda0289kievechuardreyn1mmyNeoPhitrotzigjadkapRafaelCosmanpapandreouClaudiuCeiaphranevirbeNode.jsamnpradelxeoneuxdahjellesiegesmundsammkjod1kpcarrierDattayalarswAlexLeungalanchristensenChris-R3ephemerthebigredgeekcomusblakeembreyomegablitz!

今后的路

Apollo服务器是一个网络社区开发的项目,所以如果大家有什么想法或发现了错误,请在GitHub上大胆地提出问题,或发送合并请求!

我们总是在寻求更多的协助人员和维护人员,所以如果觉得这个项目适合自己,请在Apollo Slack群里的#协助者(contributors)频道上告诉我们,或直接在GitHub上给我们留言吧!

原文来自:众成翻译

电话 0512-88869195