Как создать подобный URL при использовании axios?

Как правильно сформулировать запрос API с параметром, содержащим повторяющиеся имена, но различные значения? Как правильно передать такие параметры в запросе?
  • 4 мая 2024 г. 22:20
Ответы на вопрос 2
Для создания подобного URL при использовании axios, вы можете воспользоваться следующим примером:

```javascript
const axios = require('axios');

const paramValues = ['value1', 'value2', 'value3']; // пример значений параметра

const params = paramValues.map(value => `param=${value}`).join('&');

axios.get(`https://api.example.com/?${params}`)
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });
```

Чтобы сформулировать запрос API с параметром, содержащим повторяющиеся имена, но различные значения, вы можете использовать массив для хранения значений параметра и затем с помощью метода `map` создать строку с параметрами, объединив их с помощью `&`.

Например, если у вас есть параметр `param`, и вам нужно передать значения `value1`, `value2` и `value3`, вы можете создать параметры в строке запроса в виде `param=value1&param=value2&param=value3`.

При передаче таких параметров в запросе, вы можете использовать приведенный выше пример с axios, чтобы передать значения параметра в виде массива и сформировать соответствующую строку запроса.
https://github.com/axios/axios/#request-config 

Нужно использовать paramsSerializer.indexes

Configuration for formatting array indexes in the params.
Three available options:
(1) indexes: null (leads to no brackets),
(2) (default) indexes: false (leads to empty brackets),
(3) indexes: true (leads to brackets with indexes).


axios.get('https://api.kinopoisk.dev/v1.4/movie', {
  params: {
    page: page,
    limit: limit,
    notNullFields: ['poster.url', 'movieLength']
  },
  paramsSerializer: {
    indexes: null
  }
});
Похожие вопросы