1

我很难在 reactjs 中尝试使基本的 zomato api 请求工作。

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});
  });
 }

但是,当我在浏览器中点击任何 api url 时,我会不断收到此响应。或通过失眠。

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

我知道它说 API 无效。但是在登录并在 Zomato 的开发人员门户中应用任何 API 密钥后,我已经获得了这些 URL。找不到任何说明来弄清楚我哪里出错了......

谢谢,丽娜。

4

4 回答 4

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 }); }); 

谢谢你们。

于 2018-04-09T13:21:21.000 回答
1

从 Headers 中传递 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);
      });
于 2019-10-13T11:20:42.997 回答
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"

希望这会帮助你。

于 2018-04-07T22:40:42.477 回答
0

似乎您缺少user-key参数及其值。例如,URL 应该是这样的:

https://developers.zomato.com/api/v2.1/categories?user-key=<your API key>
于 2018-04-07T22:42:43.493 回答