несколько клиентов API с топором ios и реагировать на нативный - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь разработать приложение с использованием RN, используя Redux с 2 API. Я не знаю, как правильно использовать «multiClientMiddleware», хотя я прочитал https://github.com/svrcekmichal/redux-axios-middleware. Пока что мой код работает с одним из API:

const StockClient = axios.create({
baseURL: 'https://sandbox.iexapis.com/stable',
responseType: 'json',
params: {
    token: STOCK_API
  },
})
const store = createStore(persistedReducer, applyMiddleware(axiosMiddleware(StockClient))

Я бы хотел добавить клиента NewsAPI в свой магазин

const NewsClient = axios.create({
  baseURL: 'https://newsapi.org/v2',
  responseType: 'json',
  params: {
    apiKey: NEWS_API
  }
})

Как я также могу создать своих создателей Actions, так некоторые из них должны использовать API1 или API2

1 Ответ

0 голосов
/ 04 марта 2020

redux-ax ios -программа обеспечивает поддержку нескольких клиентов, пожалуйста, обратитесь к документации

import { multiClientMiddleware } from 'redux-axios-middleware';
createStore(
 ...
 multiClientMiddleware(
   clients, // described below
   options // optional, this will be used for all middleware if not overriden by upper options layer
 )
)


//where clients 
{
  default: {
    client: axios.create({
       baseURL:'http://localhost:8080/api',
       responseType: 'json'
    })
  },
  googleMaps: {
    client: axios.create({
        baseURL:'https://maps.googleapis.com/maps/api',
        responseType: 'json'
    })
  }
}
export function loadCategories() {
  return {
    type: 'LOAD',
    payload: {
      client: 'default', //here you can define client used
      request:{
        url:'/categories'
      }
    }
  }
}

больше из коробки обходной путь

Вы можете использовать ax ios клиент с базовым URL для вашего первого API. а для api2 вы можете объявить маршруты как

let route1 = apiroute;
let route2 = API2_BASE_URL+ apiroute2;
let route3 = API2_BASE_URL+apiroute3;

, базовый URL для второго API будет вызываться автоматически

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...