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

Я использую Postman для создания сущности и добавил токен носителя на вкладке авторизации, но он предполагает создать суть и вернуть 201 Created, вместо этого он возвращает 200 OK и ничего не создает введите здесь описание изображения

Я написал в теле запроса пример, упомянутый в GitHub Docs, для создания Gist.

{
  "description": "Hello World Examples",
  "public": true,
  "files": {
    "hello_world.rb": {
      "content": "class HelloWorld\n   def initialize(name)\n      @name = name.capitalize\n   end\n   def sayHi\n      puts \"Hello !\"\n   end\nend\n\nhello = HelloWorld.new(\"World\")\nhello.sayHi"
    },
    "hello_world.py": {
      "content": "class HelloWorld:\n\n    def __init__(self, name):\n        self.name = name.capitalize()\n       \n    def sayHi(self):\n        print \"Hello \" + self.name + \"!\"\n\nhello = 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"
    }
  }
}

person Deena M. Zamzam    schedule 20.11.2020    source источник
comment
Пожалуйста, опубликуйте то, что вы пробовали, в виде текста и используйте изображение в качестве вспомогательного контекста. Вы используете Content-Type: application/json?   -  person windowsill    schedule 21.11.2020


Ответы (1)


https://docs.github.com/en/free-pro-team@latest/rest/reference/gists#create-a-gist

Аутентификация Вы можете читать общедоступные списки анонимно, но для создания списков необходимо войти в GitHub. Чтобы читать или писать списки от имени пользователя, вам нужна область видимости OAuth и токен. Дополнительные сведения см. в разделе Области для приложений OAuth.

Вы должны пройти аутентификацию, иначе у вас будет доступ только для чтения, поэтому вы получаете 200 вместо 201.

Вторая причина: вы используете http вместо https

Используйте токен, сгенерированный из настроек разработчика, в качестве носителя oauth2:

введите здесь описание изображения

person PDHide    schedule 21.11.2020
comment
Спасибо за ваш ответ, но я получил токен личного доступа из настроек разработчика на github с описанием области действия, я думаю, этого достаточно, чтобы публиковать запросы, если есть другой способ получить токен другого типа, пожалуйста, уточните это? @PDHide - person Deena M. Zamzam; 22.11.2020
comment
Принять: application/vnd.github.v3+json вы устанавливаете этот заголовок? удалите заголовок принятия по умолчанию из почтальона и добавьте это. ТАКЖЕ попробуйте использовать мультиформные данные вместо тела json, чтобы отправить это и посмотреть - person PDHide; 22.11.2020
comment
@DeenaM.Zamzam для меня это работает, пожалуйста, посмотрите обновленный ответ, который вы можете использовать как raw›json . Когда вы добавляете авторизацию, используйте oauth 2, токен носителя. ТАКЖЕ используйте https вместо http - person PDHide; 22.11.2020
comment
@DeenaM.Zamzam, используя https вместо http, решит вашу проблему, если вы передаете токен аутентификации в качестве носителя и принимаете как application/vnd.github.v3+json - person PDHide; 22.11.2020
comment
Огромное спасибо, ты гений, это было в https @PDHide - person Deena M. Zamzam; 22.11.2020
comment
@DeenaM.Zamzam, пожалуйста, примите ответ и проголосуйте, щелкнув стрелку вверх и поставив галочку рядом с моим ответом :) - person PDHide; 22.11.2020