如何从Locu API获取餐厅菜单

时间:2015-04-19 19:36:21

标签: android web-services

我查看了几个用于获取特定位置的餐馆菜单的API,并确定Locu API最适合我。

我正在尝试在locu网站上列出的基本示例:

curl -X POST https://api.locu.com/v2/venue/search/ -d '{"fields":["name","menu_items","location","categories","description"],"menu_item_queries":[{"price":{"$lt":6},"name":"burrito"}],"venue_queries":[{"location":{"locality":"San Francisco"}}],"api_key":"MY_API_KEY"}'

其中,MY_API_KEY是我在注册时收到的API_KEY。 只要我包含" menu_items"参数,我一直收到回复:

{"status": "error", "http_status": 400, "error": "The requested \"menu_items\" field is either invalid or your account does not have permissions to access it."}

我没有遇到任何关于我需要做什么才能获得查询权限的文档" menu_items"。如果有人能指出我正确的方向,我将非常感激。

我已经在这里遇到了一些相对陈旧的问题,他们没有解决这个问题。

此外,这里似乎没有Locu api的标签。我将尝试用一些通用标签标记问题。请原谅我。

2 个答案:

答案 0 :(得分:2)

我知道这是一个老问题,但我发现解决方案是在场地搜索中请求“菜单”字段。 API将返回“menu_items”作为菜单的子对象。

答案 1 :(得分:-1)

`

  import java.io.BufferedReader;
  import java.io.IOException;
  import java.io.InputStreamReader;
  import java.net.HttpURLConnection;
  import java.net.MalformedURLException;
  import java.net.URL;

public class NetClientGet {


public static void main(String[] args) {

  try{
      String result;
      URL url = new URL("https://api.locu.com/v1_0/venue/search/?api_key=" +apiKey);
      HttpURLConnection conn = (HttpURLConnection) url.openConnection();
      conn.setRequestMethod("GET");
      conn.setRequestProperty("Accept", "application/json");

      if (conn.getResponseCode() != 200) {
        throw new RuntimeException("Failed : HTTP error code : " + conn.getResponseCode());
    }

    BufferedReader br = new BufferedReader(new InputStreamReader(
        (conn.getInputStream())));

    String output;
    System.out.println("Output from Server .... \n");
    while ((output = br.readLine()) != null) {
        System.out.println(output);} 
   }           
    conn.disconnect();

  } catch (MalformedURLException e) {

    e.printStackTrace();

  } catch (IOException e) {

    e.printStackTrace();

  }
 }
}`