Я неправильно использую GitHub API?Если так, какая альтернатива? - PullRequest
0 голосов
/ 30 июня 2019

Я работаю на моем личном веб-сайте: https://aleksandrhovhannisyan.github.io/

В настоящее время все мои проекты жестко запрограммированы в HTML.Это затрудняет их поддержание.Например, если проект помечен, я должен войти и вручную обновить количество звездочек, а затем нажать коммит.Это работает, и это быстро с точки зрения пользовательского опыта, но это неэффективно.

Я работал над альтернативой, которая автоматически заполняет раздел проектов моего сайта карточками на основе данных, извлеченных из API GitHub длярепозитории:

https://developer.github.com/v3/repos/

Согласно документации API верхнего уровня (https://developer.github.com/v3/#user-agent-required):

Все запросы API ДОЛЖНЫ содержать действительный заголовок User-Agent.Запросы без заголовка User-Agent будут отклонены. Мы просим вас использовать ваше имя пользователя GitHub или имя вашего приложения для значения заголовка User-Agent. Это позволяет нам связаться с вами в случае возникновения проблем.

Действительно, это правда. Поскольку я работал над своим сценарием и обновлял свою страницу локально, я в конечном итоге был заблокирован из-за ошибки 403, потому что я не устанавливал заголовок User-Agent.

Но есть проблема: когда я открываю свой сайт в Chrome, консоль показывает эту ошибку:

index.js: 51 Отказ от установки небезопасного заголовка «Пользователь-агент»

Насколько я понимаю, это является подходящей мерой предосторожности и что заголовок пользовательского агента действительно должен быть установлен на каком-либо сервере.Chrome в конечном итоге загружает данные, хотя и медленнее, чем Firefox, который, по-видимому, не накладывает подобных ограничений на использование User-Agent.

Является ли личный веб-сайт, подобный моему, неподходящим кандидатом на использование API GitHubи установить заголовок запроса User-Agent?Если да, какие альтернативные варианты у меня есть, кроме жесткого кодирования всего?

1 Ответ

0 голосов
/ 30 июня 2019

Кажется, проблема не столько в настройке заголовка User-Agent, сколько в количестве запросов, которые я делал.

Согласно собственной документации GitHub:

Для неаутентифицированных запросов ограничение скорости допускает до 60 запросов в час.Неаутентифицированные запросы связаны с исходным IP-адресом, а не с пользователем, который делает запросы.

Это не будет иметь значения для моих конечных пользователей, так как они не будут обновлять мой сайт так много раз (надеюсь,), но это имело значение для тестирования / разработки, потому что я часто обновлялся, чтобы увидеть результаты своих изменений (и, следовательно, использовать мои доступные запросы).Я проверил это, обновив спам и запустив curl -i https://api.github.com/users/my-username за https://developer.github.com/v3/#rate-limiting:

enter image description here

Причина, по которой я так быстро исчерпал запросы, связана с недостаткомв моем дизайне JavaScript: я делаю один отдельный запрос для каждого интересующего меня репо. Вместо этого я, скорее всего, сделаю создание словаря с URL-адресами для репо, которые мне интересно отображать, а затем сделаю один запрос для всехпубличные репо на моем аккаунте.Затем я могу запустить каждое репо и проверить, есть ли оно в списке репо, которые я хочу показать;если это так, я приступлю к созданию карты проекта для него.Таким образом, я не буду спамить 6 запросов каждый раз, когда обновляюсь, чтобы получить информацию о репо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...