magento2-api-wrapper
TypeScript icon, indicating that this package has built-in type declarations

2.0.0-alpha.1 • Public • Published

Magento 2 API

License: MIT NPM Dependencies Builds Coverage

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 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 like https://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

Package Sidebar

Install

npm i magento2-api-wrapper

Weekly Downloads

153

Version

2.0.0-alpha.1

License

MIT

Unpacked Size

34.9 kB

Total Files

25

Last publish

Collaborators

  • lumnn