BaseHttpLink
Get GraphQL results over a network using HTTP fetch
BaseHttpLink
is a terminating link that sends a GraphQL operation to a
remote endpoint over HTTP. It serves as a base link to HttpLink
.
BaseHttpLink
supports both POST and GET requests, and you can configure
HTTP options on a per-operation basis. You can use these options for
authentication, persisted queries, dynamic URIs, and other granular updates.
HttpLink
over BaseHttpLink
. Use BaseHttpLink
when you
need to disable client awareness features and would like to tree-shake
the implementation of ClientAwarenessLink
out of your app bundle.1 import { BaseHttpLink } from "@apollo/client/link/http";
2
3 const link = new BaseHttpLink({
4 uri: "http://localhost:4000/graphql",
5 headers: {
6 authorization: `Bearer ${token}`,
7 },
8 });
Constructor signature
1constructor(
2 options: BaseHttpLink.Options = {}
3): BaseHttpLink
Usage
See the HttpLink
documentation for more information on
how to use BaseHttpLink
.
Types
Options passed to BaseHttpLink
through request context. Previous
non-terminating links in the link chain also can set these values to
customize the behavior of BaseHttpLink
for each operation.
HttpLink
constructor.
If a value is provided to both, the value in context
takes precedence.RequestCredentials
The credentials policy to use for each fetch
call.
RequestInit
Any overrides of the fetch options argument to pass to the fetch call.
An object containing options to use for each call to fetch
. If a
particular option is not included in this object, the default value of
that option is used.
Record<string, string>
An object representing headers to include in every HTTP request.
1 {
2 "Authorization": "Bearer 1234"
3 }
BaseHttpLink.HttpOptions
An object that configures advanced functionality, such as support for persisted queries.
string | BaseHttpLink.UriFunction
The URL of the GraphQL endpoint to send requests to. Can also be a
function that accepts an ApolloLink.Operation
object and returns the
string URL to use for that operation.
Options passed to BaseHttpLink
through the http
property of a request
context.
string[]
A list of additional accept
headers to include in the request,
as defined in http://datatracker.ietf.org/doc/html/rfc7231#section-5.3.2
1 ["application/custom+json;q=1.0"]
boolean
If true
, includes the extensions
field in operations sent to your
GraphQL endpoint.
boolean
If false
, the GraphQL query string is not included in the request. Set
this option if you're sending a request that uses a persisted query.
boolean
If true
, header names won't be automatically normalized to lowercase.
This allows for non-http-spec-compliant servers that might expect
capitalized header names.
Options provided to the BaseHttpLink
constructor.
RequestCredentials
The credentials policy to use for each fetch
call.
typeof fetch
A function to use instead of calling the Fetch API directly
when sending HTTP requests to your GraphQL endpoint. The function must
conform to the signature of fetch
.
By default, the Fetch API is used unless it isn't available in your runtime environment.
See Customizing fetch
.
RequestInit
Any overrides of the fetch options argument to pass to the fetch call.
An object containing options to use for each call to fetch
. If a
particular option is not included in this object, the default value of
that option is used.
Record<string, string>
An object representing headers to include in every HTTP request.
1 {
2 "Authorization": "Bearer 1234"
3 }
boolean
If true
, includes the extensions
field in operations sent to your
GraphQL endpoint.
If true
, unused variables from the operation will not be stripped from
the request and will instead be sent to the GraphQL endpoint.
Read more...
Unused variables are likely to trigger server-side validation errors,
per http://spec.graphql.org/draft/#sec-All-Variables-Used.
includeUnusedVariables
can be useful if your server deviates
from the GraphQL specification by not strictly enforcing that rule.
boolean
If true
, header names won't be automatically normalized to lowercase.
This allows for non-http-spec-compliant servers that might expect
capitalized header names.
BaseHttpLink.Printer
A function to use when transforming a GraphQL document into a string. It
accepts an ASTNode
(typically a DocumentNode
) and the original print
function as arguments, and is expected to return a string. This option
enables you to, for example, use stripIgnoredCharacters
to remove
whitespace from queries.
By default the GraphQL print
function is used.
1 import { stripIgnoredCharacters } from "graphql";
2
3 const httpLink = new HttpLink({
4 uri: "/graphql",
5 print: (ast, originalPrint) => stripIgnoredCharacters(originalPrint(ast)),
6 });
string | BaseHttpLink.UriFunction
The URL of the GraphQL endpoint to send requests to. Can also be a
function that accepts an ApolloLink.Operation
object and returns the
string URL to use for that operation.
boolean
If true
, the link uses an HTTP GET
request when sending query
operations to your GraphQL endpoint. Mutation operations continue to use
POST
requests. If you want all operations to use GET
requests,
set fetchOptions.method
instead.