#api #postman #github-api #gist #github-api-v3
#API #postman #github-api #суть #github-api-v3
Вопрос:
Я использую Postman для создания gist и я добавил токен на предъявителя на вкладке авторизации но он предполагает создание gist и возврат 201 созданного вместо этого он возвращает 200 OK и ничего не создает введите описание изображения здесь
Я написал в теле запроса пример, упомянутый в документах GitHub, чтобы создать суть
{
"description": "Hello World Examples",
"public": true,
"files": {
"hello_world.rb": {
"content": "class HelloWorldn def initialize(name)n @name = name.capitalizen endn def sayHin puts "Hello !"n endnendnnhello = HelloWorld.new("World")nhello.sayHi"
},
"hello_world.py": {
"content": "class HelloWorld:nn def __init__(self, name):n self.name = name.capitalize()n n def sayHi(self):n print "Hello " self.name "!"nnhello = HelloWorld("world")nhello.sayHi()"
},
"hello_world_ruby.txt": {
"content": "Run `ruby hello_world.rb` to print Hello World"
},
"hello_world_python.txt": {
"content": "Run `python hello_world.py` to print Hello World"
}
}
}
Комментарии:
1. Пожалуйста, опубликуйте то, что вы пробовали, в виде текста, и используйте изображение в качестве вспомогательного контекста. Используете ли вы
Content-Type: application/json
?
Ответ №1:
https://docs.github.com/en/free-pro-team@latest/rest/reference/gists#create-a-gist
Аутентификация Вы можете читать общедоступные gist анонимно, но для создания gist у вас должен быть вход в GitHub. Чтобы читать или записывать gist от имени пользователя, вам нужна область OAuth gist и токен. Дополнительные сведения см. в разделе «Области применения приложений OAuth».
Вы должны пройти аутентификацию, иначе у вас будет доступ только на чтение, вот почему вы получаете 200 вместо 201
Вторая причина: вы используете http вместо https
Используйте токен, сгенерированный из настроек разработчика, в качестве носителя oauth2:
Комментарии:
1. Спасибо за ваш ответ, но я получил личный токен доступа из настроек разработчика на github с областью действия, я думаю, его достаточно для отправки запросов, если есть какой-либо другой способ получить токен другого типа, пожалуйста, уточните это? @PDHide
2. Принять: application/vnd.github.v3 json вы устанавливаете этот заголовок? удалите заголовок accept по умолчанию из postman и добавьте это . Также попробуйте использовать многоформные данные вместо тела json для отправки этого и посмотреть
3. @DeenaM.Zamzam для меня это работает, пожалуйста, посмотрите Обновленный ответ, который вы можете использовать body как raw> json. При добавлении авторизации используйте oauth 2 , токен на предъявителя . Также используйте https вместо http
4. @DeenaM.Zamzam использование https вместо http устранит вашу проблему, если вы передаете токен аутентификации в качестве носителя и принимаете как application/vnd.github.v3 json
5. Спасибо миллион, ты гений, это было s в https @PDHide