2017-01-09 14 views
3

я установка GitHub страницы сайт здесь: http://d3js.liveGithub ограничение скорости API на общественной Github Страница сайте

Это использует GitHub API, чтобы получить г для примеров d3.js. Внешний вид и функциональность похоже на этот сайт: http://threejs.live

Я получаю ошибку 403 из-за того, что мой предел ставки поражен. Я понимаю, что аутентификация увеличит мой лимит ставок, однако я бы хотел, чтобы этот сайт был общедоступным. Из-за этого у меня есть несколько вопросов:

  1. Любой предел ставки будет проблемой, если движение должно увеличиться. Есть ли разумный сценарий, когда я могу отключить ограничение скорости для общедоступной страницы?
  2. Если бы я должен был аутентифицироваться с помощью моей учетной записи пользователя, , как бы я создал маркер на стороне сервера на страницах Github? Я хочу подтвердить, что этот токен не будет виден клиенту. Репо находится здесь: https://github.com/ekatzenstein/d3.js-live
  3. Наличие логина конечного пользователя с Github не является вариантом. Я хочу, чтобы это было низким уровнем входа, особенно для тех, кто не знаком с Github. Можно ли связать лимит скорости для каждого пользователя?

Майк Босток-х bl.ocks кажется, чтобы обойти ограничение скорости, но это мне не ясно, как это делается.

+0

У вас есть интерфейс для этого, или это чисто клиентская сторона? – msanford

+0

Чисто клиентская сторона в настоящее время, просто используя приложение create-response-app для развертывания сайта github pages («npm run deploy» в пакетах.json) – ekatz

+0

Хорошо, я спросил, потому что (очевидный) способ обойти это - иметь обратную -end, который кэширует ответ для вас, и вы обслуживаете _that_ для всех ваших пользователей. Это то, что делает ваш другой пример (например, большие пальцы подаются от bl.ocks). – msanford

ответ

1

Лучший способ обойти ограничения - написать простой сервер, который делает запросы API к GitHub (или кому бы то ни было), кешировать эти результаты в течение некоторого времени, чтобы оставаться ниже предела скорости, а затем обслуживать все требуемые активы из этого запроса для ваших пользователей.

Если ваш JavaScript является полиморфным, должно быть довольно тривиально положить большую часть того, что у вас уже есть на сервере NodeJS.

Как правило, это , вероятно, Какой инструмент должен делать это, в любом случае. Конечно, учитывая компромисс, аргументы могут быть сделаны в любом случае.

Это, к примеру, bl.ocks.