Как выполнить "Hello World" с Kinvey через REST?

Я новичок REST и у меня много проблем с пониманием того, как его использовать, в частности, с BAAS Kinvey & Javascript. Я потратил довольно много времени, пытаясь научиться использовать REST (что, кстати, невероятно сложно найти), и лучший ресурс, который я нашел, - это статья IBM.

Глядя на сайт Kinvey, я нашел это "руководство", но оно мне не помогает. Я думаю, это потому, что это предполагает, что у меня есть опыт использования REST-сервисов. В руководстве приведены подробности, но нет контекста. ( Это и такая помощь, но это только фрагменты).

Опять же, здесь есть разные вопросы о SO ( здесь, здесь, здесь, здесь и здесь), но все они либо очень специфические, либо очень общие.

Я люблю видеть что-то вроде:

  1. Какой тип объекта [javascript] создать (например, XMLHttpRequest?)
  2. Как построить URL-запрос (построить запрос).
  3. Как части запроса относятся к приложению (бэкэнд), на который я нацеливаюсь.
  4. Как / где / если мои учетные данные соответствуют.
  5. Как справиться с ответом.

Опять же, руководство на сайте Kinvey предполагает слишком много от меня, я не знаю о рукопожатиях или конечных точках (конечно, я использую их в Google, но без контекста трудно установить связь с тем, как это работает с Kinvey).

"Попробуйте это" часть Kinvey также сбивает с толку. Что он делает и почему он ломается, когда я меняю приложения, а также, почему / как он связан с моей учетной записью? Опять же, это показывает фрагменты, а не полный пример.

Я предположил бы, что будет простой, 15-20 строк гистограммы, показывающий живой пример - или, по крайней мере, пример, где явно объяснено, куда детализировать подробности.

Я могу все это понять, когда увижу работающий пример, мне просто нужен этот полный пример, показывающий его конец в конец.

Примечание: я использую Angularjs; Тем не менее, я хотел бы знать, как я буду делать это в JS вручную, а затем я вернусь и узнаю, как Angular абстрагирует его. Если вы также знаете Angular, добавьте и этот пример.

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

1 ответ

Решение

Я постараюсь ответить на них один за другим в меру своих способностей. Я не могу публиковать более двух ссылок без повторов, поэтому просто удалите "s", прежде чем мои ссылки будут использовать их.

Для http запросов через javascript важно, чтобы вы понимали CORS

CORS учебник

AJAX,

Также было бы полезно проверить

XmlHttpRequest

Чтение спецификации об отдыхе, вероятно, является одним из лучших способов узнать тонкие детали того, что такое REST и на что он способен. Поиск учебников по использованию REST в программировании во многом зависит от языка.

1. Какой тип объекта JavaScript следует создать (например, XMLHttpRequest?)

Это зависит от вашего браузера и версии.

Есть:

XMLHttpRequest в IE7+, Firefox, Chrome, Safari (последние версии этих браузеров поддерживают CORS, проверьте, какие из них.

XDomainRequests: найдено в IE 8 и IE 9 (поддерживает CORS)

activeXObject: найдено в IE 6,7,8,9,10 (не поддерживает CORS)

Вы можете узнать больше о специфических объектах IE, используя справочник Microsoft MSDN API. Обычно быстрый Google будет иметь хорошие результаты для этих объектов.

2: Как создать URL-запрос (построить запрос)

Предполагая, что это для сборки javascript, запрос зависит от сервера, на который вы его отправляете. Я уже связал вас с несколькими ссылками, которые помогут вам создать http-запрос и отправить его. Если вы хотите увидеть реальную реализацию, которая сейчас практикуется, вы можете проверить:

функция запроса в usergrid.js apigee в строке 67(на момент, когда я это опубликовал),

Если вы хотите узнать, как построить строку запроса ("?" После URI), проверьте функцию encodeParams в этой ссылке. Обратите внимание, что есть много способов сделать это. Это только один. Вы можете легко добавить "param=value" on on к "uri" + '?'

Следует отметить, что пример Apigee не является кросс-браузерным. Это просто предполагает XMLHttpRequest версии 2, которую поддерживают не все версии браузеров.

3: Как части запроса относятся к приложению (бэкэнд), на которое я нацеливаюсь.

Если вы нацелены на kinvey, то предоставленная вами ссылка на API-интерфейс RESTful действительно лучший способ объяснить это. В нем подробно описывается, как должны выглядеть ваши заголовки URL и http для действий, которые вы пытаетесь выполнить. В путеводителях Кинвея для отдыха есть более конкретные примеры для http-запроса. Компоненты, которые входят в URL, в значительной степени зависят от серверной части. Если у вас есть более конкретный вопрос, я могу попытаться ответить на него.

4: Как / где / если мои учетные данные соответствуют

Это снова зависит от серверной части / сервера. Для Kinvey они используют Basic Auth и OAuth. Вы должны проверить их руководства по безопасности для получения дополнительной информации об этом.

Если вы изучите / изучите исходные ссылки, которые я разместил, и узнаете о http-запросах, то ваши учетные данные будут находиться в заголовке авторизации httpRequest. Для кинвея это обычно выглядит так:

Авторизация: "Basic " + Base64encoding[appId:appSecret] или "Kinvey" + [authToken]

5: Как обращаться с ответом.

Опять же зависит от сервера / сервера. Вышеупомянутые ссылки в учебнике по AJAX и CORS показывают, как обрабатывать ответ.

Вы можете получить много разных ответов, xml, json, простой текст и т. Д. Тип, который вы хотите, обычно указывается вами в поле принятия заголовка запроса вами или типом содержимого заголовка ответа сервера, который сообщает вам, какой тип он отправил обратно или Можно отправить обратно, но для этого требуется один раз вызвать сервер, чтобы узнать, что он отправляет по умолчанию. Многие mBaaS обычно указывают ответы в своей документации

Для kinvey они обычно отправляют обратно JSON, так что вы можете просто использовать ответ JSON.parse() и получить доступ к нужным данным из объекта JSON.

Надеюсь, это ответило на некоторые или все ваши вопросы, и если кто-то посчитает, что я что-то сделал неправильно или сказал что-то ужасно неточное, дайте мне знать. Это моя первая публикация о переполнении стека, но я использовал kinvey, а также многие другие mBaaSes для своей работы. Так что я узнал их немного.

Наконец, если вы узнали то, что хотели, просто используйте javascript api Кинви, который будет обрабатывать все взаимодействия с RESt для вас. Не нужно заново изобретать колесо, если вам не нужно делать что-то более конкретное, чем не предоставляют JS-фреймворки.

Другие вопросы по тегам