NodeJS — отправка параметров объекта JSON с помощью node-fetch

Я пытаюсь создать веб-хук через GitHub API. В документах сказано, что мне нужно предоставить параметр config , который должен быть объектом, но я не уверен, как отправить JSON в параметрах URL. Вот что я пробовал:

fetch(`https://api.github.com/repos/${repo.full_name}/hooks?config={"url": "https://webhooks.example.com", "content_type": "json"}`, {
    method: "POST",
    headers: {
        Accept: "application/vnd.github.v3+json",
        Authorization: `token ${account.accessToken}`
    }
});

а также

fetch(`https://api.github.com/repos/${repo.full_name}/hooks?config.url=https://webhooks.example.com&config.content_type=json`, {
    method: "POST",
    headers: {
        Accept: "application/vnd.github.v3+json",
        Authorization: `token ${account.accessToken}`
    }
});

Оба они приводят к следующей ошибке:

{
    "message": "Validation Failed",
    "errors": [
        {
            "resource": "Hook",
            "code": "custom",
            "message": "Config must contain URL for webhooks"
        }
    ],
    "documentation_url": "https://developer.github.com/v3/repos/hooks/#create-a-hook"
}

Как правильно отправить объект JSON? Я ищу решение с помощью node-fetch


person APixel Visuals    schedule 28.05.2019    source источник


Ответы (1)


Когда вы выполняете почтовый запрос, подразумевается, что будет полезная нагрузка, а используемая вами библиотека будет ожидать свойство body, содержащее вашу полезную нагрузку.

Так что просто добавь

fetch('https://api.github.com/repos/${repo.full_name}/hooks') {
    method: "POST",
    headers: {
        Accept: "application/vnd.github.v3+json",
        Authorization: `token ${account.accessToken}`
    },
    body:JSON.stringify(yourJSON) //here this is how you send your datas
});

И node-fetch отправит ваше тело с вашим запросом.

Если вы хотите получить более подробную информацию об этом, я расширю свой ответ.

https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods здесь для краткого описания различных типов HTTP-запросов (глагол)

person Arfost    schedule 28.05.2019