Path: blob/master/bitget-node-sdk-api/src/lib/BaseApi.ts
732 views
import getSigner, {BitgetApiHeader, toJsonString, sortByKey} from './util';1import {API_CONFIG} from './config';2import axios, {AxiosInstance, AxiosRequestConfig} from 'axios';3import * as Console from 'console';45export class BaseApi{6protected signer: (7httpMethod: string,8url: string,9qsOrBody: NodeJS.Dict<any> | null,10locale?: string11) => BitgetApiHeader121314constructor(15apiKey: string,16secretKey: string,17passphrase: string,18httpConfig: AxiosRequestConfig = {timeout: 3000}19) {20this.axiosInstance = axios.create({21baseURL: API_CONFIG.API_URL,22...httpConfig23})24this.axiosInstance.interceptors.request.use((data) => {25if(data.data){26data.data = toJsonString(data.data);27}28if(data.params){29data.params = sortByKey(data.params)30// Console.log('sort_params:', data.params)31}32Console.log('request:',data.data || data.params)33return data;34})3536this.axiosInstance.interceptors.response.use(37(data) => {38return data.data;39},40(err) => {41// Console.error(err.response.data)42// throw err.response.data43return err.response.data;44}45)46this.signer = getSigner(apiKey, secretKey ,passphrase)47}4849axiosInstance: AxiosInstance50}5152