API Zomato не работает - ReactJs

avatar
Reena Verma
7 апреля 2018 в 22:26
2361
4
1

Мне трудно заставить работать базовый запрос API zomato в reactjs.

Документация по API выглядит очень просто. Я делаю базовый запрос GET к категориям: https://developers.zomato.com/documentation#!/common/categories

А вот как выглядит моя функция ReactJS:

  componentDidMount() {
   // A previous request for london restaurants 
  //  axios.get('https://developers.zomato.com/api/v2.1/geocode? 
 lat=51.5138&lon=0.0984')

 axios.get('https://developers.zomato.com/api/v2.1/categories')
  .then(res => {
    console.log(res.data);
    this.setState(
      { places: res.data});
  });
 }

Однако я продолжаю получать этот ответ, когда нажимаю любой URL-адрес API в браузере. Или из-за бессонницы.

{
"code": 403,
"status": "Forbidden",
"message": "Invalid API Key"
}

Я знаю, что он говорит о недопустимом API. Но я получил эти URL-адреса после входа в систему и применения любого ключа API на портале разработчиков Zomato. Не могу найти инструкций, чтобы понять, где я ошибся...

Спасибо, Рина.

Источник

Ответы (4)

avatar
Noel Sasikanth
13 октября 2019 в 11:20
1

Передайте ключ API_Key из заголовков, чтобы получить данные ответа.

axios({
      method: "GET",
      url: "https://developers.zomato.com/api/v2.1/search",
      headers: {
        "user-key": "b8cc3b8b0a85afed047f030fb52dc15f",
        "content-type": "application/json"
      }
    })
      .then(response => {
        console.log(response.data.restaurants[0].restaurant.name);
      })
      .catch(error => {
        console.log(error);
      });
avatar
Reena Verma
9 апреля 2018 в 13:21
4

я понял, ответ был таким:

const config = { headers: {'user-key': 'MY KEY HERE'} }; 
enter code here
axios.get('developers.zomato.com/api/v2.1/…;  config) .then(res => { 
console.log(res.data.collections); this.setState( { places: 
res.data.collections }); }); 

спасибо всем.

avatar
vips
7 апреля 2018 в 22:42
0

Кажется, вам не хватает параметра user-key и его значения. Например, URL-адрес должен выглядеть примерно так:

.
https://developers.zomato.com/api/v2.1/categories?user-key=<your API key>
avatar
shivamsupr
7 апреля 2018 в 22:40
0

Вам необходимо установить этот ключ в заголовке запроса.

Ключ X-Zomato-API:

Пример запроса:

curl -X GET --header "Accept: application/json" --header "X-Zomato-API-Key: <YOUR_API_KEY>" "https://developers.zomato.com/api/v2.1/categories"

Надеюсь, это поможет вам.

Reena Verma
8 апреля 2018 в 15:09
0

хорошо, но кто бы я написал это, используя аксиомы? я не думаю, что использую curl в этом проекте...

shivamsupr
9 апреля 2018 в 12:00
0

В вашем запросе axios просто установите «X-Zomato-API-Key:» в заголовках.

Reena Verma
9 апреля 2018 в 13:20
0

я понял, ответ был таким: const config = {headers: {'user-key': 'MY KEY HERE'} }; axios.get('developers.zomato.com/api/v2.1/…', config) .then(res => { console.log(res.data.collections); this.setState( {Места: res.data.collections});}); Спасибо вам всем.