Автоматизация GitHub API для создания репозиториев / Gist возвращает 200 OK вместо 201 созданного

#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