apollo-server-integrations / apollo-server-integration-azure-functions

MIT License
31 stars 13 forks source link

Apollo Server Integration for Azure Functions

Build Release npm (scoped)

Introduction

An Apollo Server integration for use with Azure Functions.

This is a simple package allows you to integrate Apollo Server into an Azure Functions app.

Requirements

Installation

npm install @as-integrations/azure-functions @apollo/server graphql @azure/functions

Usage

  1. Setup an Azure Function with TypeScript (or JavaScript) as per normal.
  2. Create a new HTTP Trigger
  3. Update the index.ts to use the Apollo integration:

v3

import { ApolloServer } from '@apollo/server';
import { startServerAndCreateHandler } from '@as-integrations/azure-functions';

// The GraphQL schema
const typeDefs = `#graphql
  type Query {
    hello: String
  }
`;

// A map of functions which return data for the schema.
const resolvers = {
  Query: {
    hello: () => 'world',
  },
};

// Set up Apollo Server
const server = new ApolloServer({
  typeDefs,
  resolvers,
});

export default startServerAndCreateHandler(server);

v4

import { ApolloServer } from '@apollo/server';
import { v4 } from '@as-integrations/azure-functions';

// The GraphQL schema
const typeDefs = `#graphql
  type Query {
    hello: String
  }
`;

// A map of functions which return data for the schema.
const resolvers = {
  Query: {
    hello: () => 'world',
  },
};

// Set up Apollo Server
const server = new ApolloServer({
  typeDefs,
  resolvers,
});

app.http('graphql', {
  handler: v4.startServerAndCreateHandler(server),
});
  1. Update the function.json HTTP output binding to use $return as the name, as the integration returns from the Function Handler (v3 only):
{
  "type": "http",
  "direction": "out",
  "name": "$return"
}
  1. Run the Azure Functions app and navigate to the function endpoint

Contributors