magento2-api-wrapper
v2.0.0-alpha.1
Published
Minimal Magento 2 API library. Both node and browser compatible
Downloads
2,035
Maintainers
Readme
Magento 2 API
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
Node.js
Install
npm install magento2-api-wrapper
or
npm jsr install @lumnn/magento2-api
Usage
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.
Deno
Above examples should be pretty much similar only difference is in how module is imported
import { Magento2Api } from "@lumnn/magento2-api"
Methods / Properties
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
Options
Constructor Options
api.url
:string
- required - a baseUrl for magento instaceapi.consumerKey
:string
- (optional) - for authenticationapi.consumerSecret
:string
- (optional) - for authenticationapi.accessToken
:string
- (optional) - for authenticationapi.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 buildingstoreCode
:string
- setting storeCode will change base url so it's likehttps://example.org/rest/{storeCode}/V1/
Useful Examples
Allowing self-signed certificate
Deno: --unsafely-ignore-certificate-errors=localhost
.
Node: NODE_TLS_REJECT_UNAUTHORIZED=0
Run tests
deno test