我正在使用redux-axios-middleware开发React Native应用程序。我一直在使用axios客户端访问API,如下所示:
const clients = {
default: {
client: axios.create({
baseURL: "https://sandbox.iexapis.com",
responseType: "json",
params: {
token: "",
},
}),
},
newsClient: {
client: axios.create({
baseURL: "https://newsapi.org/v2",
responseType: "json",
params: {
apiKey: "",
},
}),
},
finnhub: {
client: axios.create({
baseURL: "https://finnhub.io/api/v1",
responseType: "json",
params: {
token: "",
},
}),
},
};
const persistedReducer = persistReducer(persistConfig, reducers);
const store = createStore(
persistedReducer,
applyMiddleware(multiClientMiddleware(clients))
);
const persistor = persistStore(store);
export default { store, persistor };
但是,Finnhub api提供了自己的客户端,建议的用法如下:(来自文档)
const finnhub = require('finnhub');
const api_key = finnhub.ApiClient.instance.authentications['api_key'];
api_key.apiKey = "<API_KEY>" // Replace this
const finnhubClient = new finnhub.DefaultApi()
// Stock candles
finnhubClient.stockCandles("AAPL", "D", 1590988249, 1591852249, {}, (error, data, response) => {
console.log(data)
});
那么,问题是我该如何使用带有redux-axios-middleware的客户端?如果我能够做到这一点,那么使用API的客户端和我的操作方式(在axios客户端内部)有什么区别
答案 0 :(得分:1)
提供的软件包通常可以帮助用户开始使用API。如果API的身份验证令牌需要刷新,这特别有用。如果您可以阅读文档并制定所需的API调用,则可以继续使用Axios实例,而不使用提供的包。该软件包只是增加了一些其他抽象,但是如果您查看源代码,它将最终进行与您可能直接进行的相同的api调用。