Freebase "Ключевой курсор - зарезервированное слово" - PullRequest
3 голосов
/ 04 ноября 2011

После документов Freebase по параметрам конверта , выполнение

{
  "cursor":true,
  "query":[{
    "type":"/music/album",
    "artist":"The Police",
    "name":null,
    "limit":10
  }]
}​

приводит к ошибке "Key cursor is a reserved word" как @ Domenic notes .

Что не так?


Редактировать 1

Итак этот запрос без курсора работает , но этот не потому что курсор был именем переменной, а не строкой, заключенной в кавычки .

Как пользователь имеет смысл вводить неверную версию "cursor", потому что тип параметра чтенияТаблица содержит query и "cursor" как type: string, и query выдает ошибки, если вы заключаете ее в кавычки как "query"

Однако, даже включая "cursor" в кавычкине работает: он приводит к одинаковым данным для каждого запроса.

1 Ответ

1 голос
/ 04 ноября 2011

Похоже, это может быть еще один случай, когда редактор запросов был слишком умным и исправлял вещи для нас.Если вы скопируете и вставите запрос выше в редактор запросов и нажмете «Выполнить», вы получите эту ошибку, как вы сообщали:

{
  "code":          "/api/status/error",
      "messages": [{
    "code":    "/api/status/error/mql/type",
    "info": {
      "expected_type": "/type/object",
      "property":      "cursor"
    },
    "message": "Key cursor is a reserved word",
    "path":    "",
    "query": {
      "cursor":       true,
      "error_inside": ".",
      "query": [{
        "artist": "The Police",
        "limit":  10,
        "name":   null,
        "type":   "/music/album"
      }]
    }
  }],
  "status":        "200 OK",
  "transaction_id": "cache;cache03.p01.sjc1:8101;2011-11-04T17:42:13Z;0057"
}

Но затем, если вы нажмете на постоянную ссылку на этот запрос, она изменит его на этот запроси автоматически устанавливает для свойства курсора значение true.

[{
  "type":   "/music/album",
  "artist": "The Police",
  "name":   null,
  "limit":  10
}]​

Это происходит потому, что служба чтения MQL ожидает, что запрос будет вложен в конверт запроса , но редактор запросов просто принимает запрос, который выдайте его и автоматически оберните в соответствующий конверт запроса.

В новой версии службы чтения MQL мы покончили с конвертом запроса и теперь курсор является просто параметром в запросе HTTP GET.

...