# sapanywhereapis

> SAP Anywhere APIs SDK

Latest version **1.0.9** (published 2017-08-10) · ISC license · 0 weekly downloads

## Install

```sh
npm install sapanywhereapis
pnpm add sapanywhereapis
yarn add sapanywhereapis
bun add sapanywhereapis
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.9 |
| Published | 2017-08-10 |
| First published | 2017-08-10 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | wjj0508403034@126.com |
| Maintainers | huoyun |
| Keywords | SAPAnywhere, SDK, APIs |

## Links

- npm: https://www.npmjs.com/package/sapanywhereapis
- Repository: https://github.com/wjj0508403034/sapanywhereapis
- Homepage: https://github.com/wjj0508403034/sapanywhereapis#readme
- Issues: https://github.com/wjj0508403034/sapanywhereapis/issues
- npm.io page: https://npm.io/package/sapanywhereapis

## Dependencies (2)

- [request-log4js](https://npm.io/package/request-log4js.md) ^1.1.0
- [huoyun-restclient](https://npm.io/package/huoyun-restclient.md) ^1.0.0

## Recent versions

- 1.0.9 (latest) — 2017-08-10
- 1.0.8 — 2017-08-10
- 1.0.7 — 2017-08-10
- 1.0.6 — 2017-08-10
- 1.0.5 — 2017-08-10
- 1.0.4 — 2017-08-10
- 1.0.3 — 2017-08-10
- 1.0.2 — 2017-08-10
- 1.0.1 — 2017-08-10
- 1.0.0 — 2017-08-10

## README

# SAP Anywhere APIs Nodejs Client

[Node.js][node] client library for using SAP Anywhere APIs. Support for authorization and authentication with OAuth 2.0, API Keys is included.

## Installation

This library is distributed on `npm`. In order to add it as a dependency,
run the following command:

``` sh
$ npm install sapanywhereapis --save
```

## Usage

### Authorizing and authenticating

#### OAuth2 client

This client comes with an [OAuth2][oauth] client that allows you to retrieve an
access token and refreshes the token and retry the request seamlessly if you
also provide an `expiry_date` and the token is expired. 

##### Generating an authentication URL

To ask for permissions from a user to retrieve an access token, you
redirect them to a consent page. To create a consent page URL:

``` js
const SAPAnywhereApis = require("sapanywhereapis");

const auth = new SAPAnywhereApis.OAuth2(
  // Client Id
  "Pq1IRNhAzkZW8dNllYX1gLdbzBKwVlJZ",

  // Client Secret
  "vU-roN220UA7iq_F_kV-Q0IvEy27fyJS",

  // Application URL
  `http://localhost:8080/anywhere`,

  // Installation URL
  `http://localhost:8080/anywhere/install`
);
```

If using oauth client for e2e testing, you can change sap anywhere host following below code

```js
const AnywhereConfig = new SAPAnywhereApis.Config();
AnywhereConfig.setHostNames("go-mv.dd.smec.sap.corp", "api-mv.dd.smec.sap.corp");
auth.setConfig(AnywhereConfig);
```

##### Retrieve authorization code

Once a user has given permissions on the consent page, Google will redirect
the page to the redirect URL you have provided with a code query parameter.

    GET /callback?code={authorizationCode}

##### Retrieve access token

With the code returned, you can ask for an access token as shown below:

``` js
auth.getTokenByCode(code, redirect_uri)
  .then(function(tokens) {
  // Now tokens contains an access_token and an optional refresh_token. Save them.
  auth.setCredentials(tokens);
  }).catch(function(err) {
    // Occur error
  });
```

#### Using API keys

You may need to send an API key with the request you are going to make.
The following uses an API key to make a request to the SAP Anywhere API service to
retrieve a customer data:

``` js
SAPAnywhereApis.APIs.query(auth, 'Customers')
  .then(function(customers) {
    // Retrieve customer data
  }).catch(function(err) {
    // Occur error
  });
```

---
_Source: https://npm.io/package/sapanywhereapis · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
