Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
apollo-server
Advanced tools
Readme
Apollo Server is a community-maintained open-source GraphQL server. It works with pretty much all Node.js HTTP server frameworks, and we're happy to take PRs for more! Apollo Server works with any GraphQL schema built with GraphQL.js, so you can build your schema with that directly or with a convenience library such as graphql-tools.
Apollo Server is built with the following principles in mind:
Anyone is welcome to contribute to Apollo Server, just read CONTRIBUTING.md, take a look at the roadmap and make your first PR!
Apollo Server is super easy to set up. Just npm install apollo-server-<integration>
, write a GraphQL schema, and then use one of the following snippets to get started. For more info, read the Apollo Server docs.
There are two installation patterns:
apollo-server
package.express
, koa
, hapi
, etc.), use the appropriate Apollo Server integration package.In a new project, install the apollo-server
and graphql
dependencies using:
npm install apollo-server graphql
Then, create an index.js
which defines the schema and its functionality (i.e. resolvers):
const { ApolloServer, gql } = require('apollo-server');
// The GraphQL schema
const typeDefs = gql`
type Query {
"A simple type for getting started!"
hello: String
}
`;
// A map of functions which return data for the schema.
const resolvers = {
Query: {
hello: () => 'world',
},
};
const server = new ApolloServer({
typeDefs,
resolvers,
});
server.listen().then(({ url }) => {
console.log(`🚀 Server ready at ${url}`);
});
Due to its human-readability, we recommend using schema-definition language (SDL) to define a GraphQL schema but a
GraphQLSchema
object fromgraphql-js
can also be specified in place oftypeDefs
andresolvers
using theschema
property:
const server = new ApolloServer({ schema: ... });
Finally, start the server using node index.js
and open your web-browser to the URL which is output on the console.
For more details, check out the Apollo Server Getting Started guide of the documentation, or for a more comprehensive understanding, see the fullstack tutorial.
For questions, the Apollo commuinty on Spectrum.chat is a great place to get assistance.
While the standalone installation above can be used without making a decision about which web framework to use, the Apollo Server integration packages are paired with specific web frameworks (e.g. Express, Koa, hapi).
The following web frameworks have Apollo Server integrations, and each of these linked integrations has its own installation instructions and examples on its package README.md
:
See the links above for more details on a specific integration.
A request context is available for each request. When context
is defined as a function, it will be called on each request and receive an object containing a req
property which represents the request.
By returning an object from the context
function, it will be available as the third positional paramter of the resolvers:
new ApolloServer({
typeDefs,
resolvers: {
Query: {
books: (parent, args, context, info) => {
console.log(context.myProperty); // Will be `true`!
return books;
},
}
},
context: async ({ req }) => {
return {
myProperty: true
};
},
})
The Apollo Server documentation contains many of the details which are necessary to get started with both GraphQL and Apollo Server.
The raw source content of that documentation is available within the docs/
directory of this monorepo, but the Edit on GitHub buttons at the bottom of each page can be used to contribute suggestions or improvements to the published content.
If you want to develop or contribute to Apollo Server itself, we suggest the following:
Fork this repository
Install the Apollo Server project in your computer
git clone https://github.com/[your-user]/apollo-server
cd apollo-server
npm install
cd packages/apollo-server-<integration>/
npm link
cd ~/myApp
npm link apollo-server-<integration>
For more help with contributing, visit the Contributing channel on the Apollo community in Spectrum.chat.
FAQs
Production ready GraphQL Server
The npm package apollo-server receives a total of 198,544 weekly downloads. As such, apollo-server popularity was classified as popular.
We found that apollo-server demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.