Skip to main content
Version: next

Axios instances

This reference explains how to create `axios` instances to interact with Magento's API.

Overview​

The Front-Commerce's Magento2 extension exposes preconfigured HTTP client instances for interacting with Magento2's API. These instances are exposed via the Dependency Injection system, under the magento2 HTTP namespace.

You can access them via services.DI.get("magento2").http.* in your code.

publicRestAPI​

The publicRestAPI instance is an axios instance that can be used to interact with Magento2's public REST API. It will handle authentication and other configuration details automatically.

Example:

path/to/graphql/module/runtime.ts
import { createGraphQLRuntime } from "@front-commerce/core/graphql";

export default createGraphQLRuntime({
contextEnhancer: ({ services, makeDataLoader }) => {
const magento2Client = services.DI.get("magento2").http.publicRestAPI;

return {
MyFeature: new MyFeatureLoader(magento2Client, makeDataLoader),
};
},
});

adminRestAPI​

The adminRestAPI instance is an axios instance that can be used to interact with Magento2's admin REST API. It will handle authentication and other configuration details automatically.

Example:

path/to/graphql/module/runtime.ts
import { createGraphQLRuntime } from "@front-commerce/core/graphql";

export default createGraphQLRuntime({
contextEnhancer: ({ services, makeDataLoader }) => {
const magento2AdminClient = services.DI.get("magento2").http.adminRestAPI;

return {
MyAdminFeature: new MyAdminFeatureLoader(
magento2AdminClient,
makeDataLoader
),
};
},
});

makeAdminClientFromRequest​

The makeAdminClientFromRequest function creates an axios instance that can be used to interact with Magento's API as an Admin.

makeAdminClientFromRequest(request);

Arguments:

NameTypeDescription
requestRequestv2 compatible request object

Example:

import { createGraphQLRuntime } from "@front-commerce/core/graphql";
import { makeAdminClientFromRequest } from "@front-commerce/magento1/axios";

export default createGraphQLRuntime({
contextEnhancer: ({ req }) => {
const adminAxiosInstance = makeAdminClientFromRequest(req);

// rest of logic
},
});

makeUserClientFromRequest​

The makeUserClientFromRequest function creates an axios instance that can be used to interact with Magento's API as a customer.

makeUserClientFromRequest(request);

Arguments:

NameTypeDescription
requestRequestv2 compatible request object

Example:

import { createGraphQLRuntime } from "@front-commerce/core/graphql";
import { makeUserClientFromRequest } from "@front-commerce/magento2/axios";

export default createGraphQLRuntime({
contextEnhancer: ({ req }) => {
const axiosInstance = makeUserClientFromRequest(req);

// rest of logic
},
});

makeCartUrlBuilderFromRequest​

The makeCartUrlBuilderFromRequest function creates a CartUrlBuilder instance.

makeCartUrlBuilderFromRequest(request);

Arguments:

NameTypeDescription
requestRequestv2 compatible request object

Example:

import { createGraphQLRuntime } from "@front-commerce/core/graphql";
import { makeCartUrlBuilderFromRequest } from "@front-commerce/magento2/axios";

export default createGraphQLRuntime({
contextEnhancer: ({ req }) => {
const cartUrlBuilder = makeCartUrlBuilderFromRequest(req);

// rest of logic
},
});