Package Exports
- magento2-api-wrapper
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (magento2-api-wrapper) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
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({
url: "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 for methods starting with $
returns plain Magento data. request
method returns whole response data (including status, headers, etc.)
NPM
import { Magento2Api } from "magento2-api-wrapper"
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