@as-integrations/azure-functions
TypeScript icon, indicating that this package has built-in type declarations

0.2.0 • Public • Published

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

Readme

Keywords

none

Package Sidebar

Install

npm i @as-integrations/azure-functions

Weekly Downloads

1,544

Version

0.2.0

License

MIT

Unpacked Size

32.2 kB

Total Files

34

Last publish

Collaborators

  • aaronpowell