@gofynd/fdk-client-javascript v3.4.0
FDK Javascript
FDK client for Javascript
Getting Started
Get started with the Javascript Development SDK for Fynd Platform
Usage
Node
npm install @gofynd/fdk-client-javascriptUsing this method, you can require fdk-client-javascript like so:
const {
ApplicationConfig,
ApplicationClient,
} = require("fdk-client-javascript");Browser
you can load fdk-client-javascript's application browser bundle from CDN; ApplicationConfig and ApplicationClient will be attached to browser's window object.
<script src="https://cdn.jsdelivr.net/gh/gofynd/fdk-client-javascript@<version>/dist/application.js"></script>Install Specific version
<script src="https://cdn.jsdelivr.net/gh/gofynd/fdk-client-javascript@1.1.0/dist/application.js"></script>const { ApplicationConfig, ApplicationClient } = window;Logging
For logging support user can pass logLevel in ApplicationConfig or PlatformConfig while declaration.
Available logging levels: TRACE, DEBUG, INFO, WARN, ERROR.
Default log level: ERRORSample Usage - ApplicationClient
const config = new ApplicationConfig({
applicationID: "YOUR_APPLICATION_ID",
applicationToken: "YOUR_APPLICATION_TOKEN",
locationDetails: "LOCATION_DETAILS_OBJECT"
});
const applicationClient = new ApplicationClient(config);
applicationClient.setLocationDetails({
pincode:"385001",
country: "India",
city: "Ahmedabad",
location: {longitude: "72.585022", latitude: "23.033863"}
});
async function getProductDetails() {
try {
const product = await applicationClient.catalog.getProductDetailBySlug({
slug: "product-slug"
});
console.log(product.name);
} catch (err) {
console.log(err);
}
}
getProductDetails();Sample Usage - PlatformClient
const { PlatformConfig, PlatformClient } = require("fdk-client-javascript");
let platformConfig = new PlatformConfig({
companyId: "COMPANY_ID",
apiKey: "API_KEY",
apiSecret: "API_SECRET",
domain: "DOMAIN",
useAutoRenewTimer: true // Setting `true` will use timer based logic to refresh the access token. With `false` will issue refresh token just before any api call when it is expired.
});
async function getData() {
try {
// TODO: get token using OAuth
platformConfig.oauthClient.setToken(token.access_token);
const client = new PlatformClient(platformConfig);
// API's without application_id
const tickets = await client.lead.getTickets();
console.log("tickets", tickets);
// API's with application_id
const customers = await client
.application("APPLICATION_ID")
.user.getCustomers();
console.log("customers", customers);
} catch (err) {
console.log(err);
}
}
getData();Sample Usage - Request function.
The request function allows you to make custom API requests with ease. It is available on both platform and application client.
let auditLog = await client.request({
url: `/service/platform/audit-trail/v1.0/company/1/logs`,
method: 'GET',
});The request function accepts an object with the following possible keys:
- method (string): The HTTP method to use (e.g., 'GET', 'POST', 'PUT', 'DELETE').
- url (string): The URL endpoint for the request.
- query (object): Query parameters to include in the request URL.
- body (object): The request payload to send.
- headers (object): Additional headers to include in the request.
Cookie
Following code snippet will read and write cookies on behalf of you Cookies will get appended in subsequent requests.
const { FdkAxios } = require('@gofynd/fdk-client-javascript');
const { wrapper } = require("axios-cookiejar-support");
const { CookieJar } = require("tough-cookie");
wrapper(FdkAxios);
const cookieJar = new CookieJar();
FdkAxios.defaults.jar = cookieJar;
module.exports = cookieJarget the stored cookie from the CookieJar instance
const cookieJar = require('path/to/cookieJar') // replace with actual path
let cookies = await cookieJar.getCookies("https://api.fynd.com");Headers
Adding Request Headers
To include request headers when calling a method, add requestHeaders object in the first argument.
const requestHeaders = {
"x-api-version": "1.0"
}
const options = {
responseHeaders: true
}
const [response, headers] = await platformClient.application("<APPLICATION_ID>").theme.getAllPages({theme_id: "<THEME_ID>", requestHeaders: requestHeaders}, options);get Response Headers
To retrieve the response headers, simply set the responseHeaders option to true when calling the desired method. Below is an example demonstrating how to achieve this:
const options = {
responseHeaders: true
}
const [response, headers] = await platformClient.application("<APPLICATION_ID>").theme.getAllPages({theme_id: "<THEME_ID>"}, options);
console.log("[API RESPONSE]: ", response);
console.log("[RESPONSE HEADERS]: ", headers);Log Curl
To print the curl command in the console for all network calls made using applicationClient or platformClient, set the logger level to debug.
const {
ApplicationClient, ApplicationConfig,
} = require("fdk-client-javascript");
let applicationConfig = new ApplicationConfig({
applicationID: "YOUR_APPLICATION_ID",
applicationToken: "YOUR_APPLICATION_TOKEN",
});
applicationConfig.setLogLevel("debug");
let applicationClient = new ApplicationClient(applicationConfig);
let response = await applicationClient.theme.getAppliedTheme();
console.log("Active Theme: ", response.information.name);The above code will log the curl command in the console
curl --request GET "https://api.fynd.com/service/application/theme/v1.0/applied-theme" --header 'authorization: Bearer <authorization-token>' --header 'x-fp-sdk-version: 3.4.0' --header 'x-fp-date: 20230222T115108Z' --header 'x-fp-signature: v1.1:1e3ab3b02b5bc626e3c32a37ee844266ade02bbcbaafc28fc7a0e46a76a7a1a8'
Active Theme: EmergeTypeScript
fdk-client-javascript includes Typescript definitions.
import { ApplicationConfig, ApplicationClient } from "fdk-client-javascript";11 months ago
11 months ago
11 months ago
11 months ago
12 months ago
9 months ago
7 months ago
10 months ago
10 months ago
12 months ago
12 months ago
8 months ago
11 months ago
11 months ago
9 months ago
1 year ago
9 months ago
8 months ago
8 months ago
8 months ago
8 months ago
11 months ago
1 year ago
1 year ago
1 year ago
9 months ago
1 year ago
6 months ago
9 months ago
10 months ago
10 months ago
11 months ago
9 months ago
9 months ago
11 months ago
8 months ago
8 months ago
7 months ago
8 months ago
8 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago