Как использовать библиотеку @ c8y / client - PullRequest
0 голосов
/ 27 июня 2018

Я тестирую новую библиотеку @ c8y / client для машинописи.

У меня очень простой код:

import {
  Client
} from '@c8y/client';
//const baseUrl = 'https://bismark1.cumulocity.com/';
const baseUrl = 'https://demos.cumulocity.com/';
const tenant = 'bismark1';
const user = '...';
const password = '.....';


(async() => {
  console.log('authentication to c8y server')
  const client = await Client.authenticate({
    user,
    password,
    tenant
  }, baseUrl);

  console.log('result from authetication', client)
  const {
    data,
    paging
  } = await client.inventory.list();
  console.log('result from inventory ', data)

  // data = first page of inventory
  const nextPage = await paging.next();
  // nextPage.data = second page of inventory

  const managedObjId: number = 1;

  (async() => {
    const {
      data,
      res
    } = await client.inventory.detail(managedObjId);
    console.log(data)
  })();

})();

Когда я запускаю скомпилированный файл .js из файла .ts, я получаю ответ ниже:

authentication to c8y server

И тогда исполнение прекращается.

Линия

console.log('result from authetication', client)

никогда не называется. Похоже, что-то происходит сбой в процессе аутентификации, и не отображается ошибка.

Что я делаю не так?

Спасибо.

1 Ответ

0 голосов
/ 05 июля 2018

Первая проблема может быть CORS . Вам нужно включить его, если вы хотите сделать запрос с другого домена. Вот руководство как это сделать в Cumulocity:

В разделе «Контроль доступа» администраторы могут включить перекрестное происхождение. совместное использование ресурсов или «CORS» в Cumulocity API.

Вторая проблема может заключаться в том, что вы не запускаете его с локального сервера разработки. В основном я использую этот http-сервер с npm для быстрого тестирования скриптов. Вы можете использовать его следующим образом:

$ npm install http-server -g
$ http-server

Если это не помогает, вы можете попытаться поймать клиента, чтобы увидеть, какую ошибку он выдает:

try {
  const client = await Client.authenticate({
    user,
    password,
    tenant
  }, baseUrl);
} catch(ex) {
 console.log(ex);
}

Исключение может рассказать вам больше о том, что не так с вашим кодом или есть ли ошибка в клиенте.

...