Угловая вкладка Apollo GraphQL Devtools невидимая

Для решения, совместимого с RFC4122 версии 4, это однострочное (ish) решение является самым компактным, с которым я мог бы столкнуться .:

function uuidv4() {
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
    var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
    return v.toString(16);
  });
}

console.log(uuidv4())

Update, 2015-06-02: Помните, что уникальность UUID в значительной степени зависит от базового генератора случайных чисел (RNG). В приведенном выше решении для краткости используется Math.random(), однако Math.random() является , а не гарантированным высококачественным RNG. Для получения дополнительной информации см. Превосходную запись Адама Хиланда на Math.random () . Для более надежного решения рассмотрим что-то вроде модуля uuid [Отказ от ответственности: я автор], который использует доступные API RNG более высокого качества, где они доступны.

Update, 2015-08 -26: Как примечание, этот gist описывает, как определить, сколько идентификаторов может быть сгенерировано до достижения определенной вероятности столкновения. Например, при использовании UUID с 3.26x1015 версии 4 RFC4122 у вас есть вероятность столкновения 1-в-миллион.

Обновление, 2017-06-28: хорошая статья от разработчиков Chrome обсуждает состояние Math.random качества PRNG в Chrome, Firefox и Safari. tl; dr - По состоянию на конец 2015 года это «неплохо», но не криптографическое. Чтобы решить эту проблему, приведена обновленная версия вышеупомянутого решения, которое использует ES6, API crypto и немного JS wizardy. Я не могу взять кредит за :

function uuidv4() {
  return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c =>
    (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
  )
}

console.log(uuidv4());

0
задан Felipe 16 January 2019 в 12:31
поделиться

1 ответ

Я выяснил, в чем проблема: у меня была ошибка CORS, когда я пытался использовать свою конечную точку Graphql с сервера разработки Angular (localhost:4200), поэтому я создал прокси, который указал на мою конечную точку:

{
  "/graphql/*": {
    "target": "https://my-endpoint/",
    "secure": false,
    "logLevel": "debug",
    "changeOrigin": true
  }
}

И изменил URL Graphql на: http://localhost:4200/graphql. Благодаря этому я смог решить проблему с CORS, однако, похоже, что Apollo Dev Tools также использует URI /graphql.

Итак, я изменил свою конфигурацию прокси на:

{
  "/stg_graphql/*": {
    "target": "https://my-endpoint/graphql",
    "secure": false,
    "logLevel": "debug",
    "changeOrigin": true,
    "pathRewrite": {
      "^/stg_graphql": ""
    }
  }
}

И указал graphql на: http://localhost:4200/stg_graphql. Когда я сделал это, все начало работать.

Примечание: чтобы запустить сервер разработки с прокси-сервером, который я использую: ng serve --proxy-config proxy.config.json.

0
ответ дан Felipe 16 January 2019 в 12:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: