UNPKG

@e2y/occ-client

Version:

OCC client for SAP Commerce Cloud

131 lines (99 loc) 3.52 kB
<!-- TOC --> * [`occ-client` v3](#occ-client-v3) * [Creation of the client](#creation-of-the-client) * [Without client credentials](#without-client-credentials) * [With client credentials](#with-client-credentials) * [With password credentials](#with-password-credentials) * [Using the client](#using-the-client) * [Creating schema from OpenAPI3.0](#creating-schema-from-openapi30) * [Using the OAuth2 Client](#using-the-oauth2-client) <!-- TOC --> # `occ-client` v3 This package acts as a client for the SAP Commerce OCC that expose the API docs as an OpenAPI3.0 specification. ## Creation of the client ### Without client credentials In case you don't need access token to be able to operate with the API, you can create the client directly. ```typescript import {OccClient} from '@e2y/occ-client'; import {paths} from '../../types/occ/schema'; const occClient = await new OccClient( new URL('https://localhost:9002/occ/v2/') ).create<paths>(); ``` ### With client credentials ```typescript import {OccClient} from '@e2y/occ-client'; import {paths} from '../../types/occ/schema'; const occClient = await new OccClient( new URL('https://localhost:9002/occ/v2/'), { oauthTokenUrl: new URL( 'https://localhost:9002/authorizationserver/oauth/token' ), clientId, clientSecret } ).create<paths>(); ``` ### With password credentials Depending on the actions you want to make, you may need to use the password grant type. To do so, you can use the `password` method. ```typescript import {OccClient} from '@e2y/occ-client'; import {paths} from '../../types/occ/schema'; const occClient = await new OccClient( new URL('https://localhost:9002/occ/v2/'), { oauthTokenUrl: new URL( 'https://localhost:9002/authorizationserver/oauth/token' ), clientId, clientSecret, username, password } ).create<paths>(); ``` ## Using the client First, you need to specify the paths of the resources you want to use (refer to [Creating schema from OpenAPI3.0]( #creating- schema-from-openapi30)). In case of the OCC-Client, you do this once you instantiate the client. ```typescript import {OccClient} from '@e2y/occ-client'; // This are the paths you need to import import {paths} from '../../types/occ/schema'; const occClient = await new OccClient(...).create<paths>() ``` Then, you create the endpoint you want to use. ```typescript const getCurrencies = fetcher .path('/{baseSiteId}/currencies') .method('get') .create(); ``` Finally, you can use the endpoint to get the data you want. ```typescript const currenciesResponse = await getCurrencies({baseSiteId: 'wololo'}); ``` ## Creating schema from OpenAPI3.0 You can create the schema of any API that meets the OpenAPI3.0 specification. To do so, you can use the `schema` package. ```bash npx openapi-typescript https://myapi.dev/api/v1/openapi.yaml -o ./path/to/my/schema.d.ts ``` You can find more information about this [here](https://openapi-ts.pages.dev/cli/). ## Using the OAuth2 Client The `OccClient` uses the `OAuth2Client` class to handle the authentication. You can use it directly if you need to perform actions that are not covered by the `OccClient`. ```typescript import {OAuth2Client} from '@e2y/occ-client'; const oauth2Client = new OAuth2Client({ oauthTokenUrl: new URL( 'https://localhost:9002/authorizationserver/oauth/token' ), clientId, clientSecret, username, password }); const {accessToken} = await oauth2Client.getToken(); ```