Невозможно получить доступ к общедоступному репозиторию GitHub через конечную точку API при отправке запроса через FastAPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно получить доступ к общедоступному репозиторию GitHub через конечную точку API при отправке запроса через FastA

Сообщение Anonymous »

Я пытаюсь написать зеркало FastAPI, чтобы возвращать общедоступные репозитории GitHub для загрузки на локальном компьютере, который не имеет доступа к более широкому Интернету. Однако, когда я тыкаю в написанную мной конечную точку, я получаю ответ «Неверные учетные данные» от GitHub.
Интересно, что когда я делаю тот же запрос через Python в терминале на том же устройство, на котором я запускаю конечную точку FastAPI, запрос одобрен, и я получаю ответ, содержащий ресурсы пакета и URL-адреса загрузки, которые мне нужны.
Почему мой запрос через Python в терминале одобрено, а не через FastAPI, хотя оба исходят от одного и того же устройства? В обоих случаях я не предоставил никаких учетных данных, поскольку конечные точки API GitHub для общедоступных выпусков должны быть доступны без необходимости аутентификации (соответствующий раздел документации GitHub REST API здесь).
код, который я использую для справки:
"""
API endpoint in question
"""

import requests
from fastapi import APIRouter, Response

windows_terminal = APIRouter(prefix="/microsoft/terminal")

@windows_terminal.get("/releases/latest", response_class=Response)
def get_latest_windows_terminal_release():
url = "https://api.github.com/repos/microsoft/ ... ses/latest"
response = requests.get(url)

return Response(
content=response.content,
status_code=response.status_code,
headers=response.headers,
)

При таком запуске указанная выше конечная точка возвращает ответ «Неверные учетные данные». Однако когда я предоставляю токен личного доступа GitHub в заголовке, он отлично возвращает данные о выпусках пакетов.
"""
From Python in the terminal on the same device
"""

$ python
$ import requests
$ url = "https://api.github.com/repos/microsoft/ ... ses/latest"
$ response = requests.get(url)
$ print(response.text)

Этот параметр командной строки успешно возвращает объект JSON с информацией о последней версии нужного мне пакета, даже если я не предоставляю ему токен GitHub.
А вот заголовки ответа и запроса к конечной точке API, которые я написал, когда получил ответ «Неверные учетные данные»:


Подробнее здесь: https://stackoverflow.com/questions/790 ... ng-request
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»