Я использую DocumentDB и хочу получить через REST-API конкретный document
из одного из моих collections
с предоставленным запросом.DocumentDB: Не удается получить доступ к документам в моей коллекции
Я хочу проверить вызов с помощью Почтальона. Я настроил заголовки и токен аутентификации, и все работает так, как ожидалось (например, я могу получить список всех моих collections
), но я не могу прочитать documents
.
Я звоню следующий URI:
POST https://xxx.azure.com/dbs/testDB/colls/offer/docs
авторизации Токен генерируется со следующими параметрами:
verb: "POST"
resourceType: "docs"
resourceID: "dbs/testDB/colls/offer"
x-ms-date: ...
masterkey: "P8riQ...aMORA=="
Заголовки:
x-ms-documentdb-isquery: True
x-ms-date: ...
authorization: generated token
x-ms-version: 2015-08-06
Content-Type: application/x-www-form-urlencoded
Тело (x- www-form-urlencoded):
query: SELECT * FROM offer
parameters: []
Но ответ от Почтальон всегда:
{
"code": "Unauthorized",
"message": "The input authorization token can't serve the request. Please check that the expected payload is built as per the protocol, and check the key being used. Server used the following payload to sign: 'post\ndocs\ndbs/testDB/colls/offer\nfri, 30 sep 2016 13:47:32 gmt\n\n'\r\nActivityId: a76408d...e08cef"
}
Что я делаю неправильно?
спасибо. Я сделал те же шаги, что и ваш блог-пост, и я могу получить все документы в определенной коллекции или во всех базах данных, но я не могу выполнить POST-запрос, чтобы получить определенный диапазон документов, потому что ответ всегда «несанкционирован» (пожалуйста, проверьте мой вопрос, я не знаю, что я делаю что-то неправильно с ResoureID и ResourceType). –
Вы должны использовать GET для извлечения документов, но POST для обновления/вставки (это REST way - полагается на HTTP-глаголы для определения того, как работает функция и что она делает) –
Спасибо, но я использую POST в качестве глагола и правильного идентификатора ресурса «dbs/testDB/colls/offer» (пожалуйста, проверьте мой вопрос), но он не делает –