Small Magento 2 API client that's ready to use. Works in browsers, node and Deno.
- Dependency free
- Works in Browser, node, Deno
- As minimal as it can get
npm install magento2-api-wrapper
or
npm jsr install @lumnn/magento2-api
As a guest
import { Magento2Api } from "magento2-api-wrapper"
// or
// const Magento2Api = require('magento2-api-wrapper')
var consumer = new Magento2Api({ baseUrl: "https://localhost" })
consumer.$get("directory/countries")
.then((data) => console.log)
// or in async functions
var countries = await customer.$get("directory/countries")
As a admin/customer
// Api Keys: Magento Admin > System > Extensions > Integration
var admin = new Magento2Api({
baseUrl: "https://localhost",
consumerKey: "xxx",
consumerSecret: "xxx",
accessToken: "xxx",
tokenSecret: "xxx",
})
admin.$get("products", {
params: {
searchCriteria: {
currentPage: 1,
pageSize: 1,
},
},
})
.then((data) => console.log)
Responses: Successfull response returns plain Magento data. Not wrapped as in Axios.
Above examples should be pretty much similar only difference is in how module is imported
import { Magento2Api } from "@lumnn/magento2-api"
Basic request method to trigger any kind of request
.request(method: string, path: string, data: any, options?: RequestOptions): Promise
Additionally following helper methods are available that simplify the process of getting JSON data and adding types to responses (supports generics)
.$get(url: string, options?: RequestOptions): Promise
.$delete(url: string, options?: RequestOptions): Promise
.$post(url: string, data: any, options?: RequestOptions): Promise
.$put(url: string, data: any, options?: RequestOptions): Promise
.$patch(url: string, data: any, options?: RequestOptions): Promise
Constructor Options
-
api.url
:string
- required - a baseUrl for magento instace -
api.consumerKey
:string
- (optional) - for authentication -
api.consumerSecret
:string
- (optional) - for authentication -
api.accessToken
:string
- (optional) - for authentication -
api.tokenSecret
:string
- (optional) - for authentication
Method options
When executing any of the methods like .get
, .post
you may use extra config
options on top of regular Request config:
-
params
:object
- an object for easier GET parameter building -
storeCode
:string
- setting storeCode will change base url so it's likehttps://example.org/rest/{storeCode}/V1/
Deno: --unsafely-ignore-certificate-errors=localhost
.
Node: NODE_TLS_REJECT_UNAUTHORIZED=0
deno test