Есть ли GitHub API для получения предложений автозаполнения для имени пользователя/организации?

Я знаю, как получить список организаций для пользователя.

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

Было бы слишком долго получать весь список (и я не уверен, что GitHub вообще раскрывает его), но все, что мне нужно, это 5-20 лучших для любого заданного префикса.

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

Что-то близкое к этому с https://github.com/autocomplete/users?q=prefix, но он не является частью официального API GitHub, поэтому я знаю, что серверная часть поддерживает такие запросы... Я просто не нашел его в документации по API, и Я не хочу получать доступ к URL-адресу, отличному от API.


person Stephen Connolly    schedule 29.08.2013    source источник


Ответы (1)


GitHub не делает этого за вас и, скорее всего, никогда не сделает. Один из вариантов, который у вас есть, — создать подобный сервис самостоятельно и постоянно обновлять список пользователей. Один из способов обновить список пользователей (разумно) — сделать следующее:

  • Сделайте начальную букву от GET до /users?per_page=100
  • Сохраните возвращенный заголовок ETag и используйте разбиение на страницы, чтобы получить все самые последние.
  • В будущем запросы отправляйте по ETag и, когда появятся новые пользователи, сохраните самые новые ETag.
  • Повторение.

Таким образом, вы сможете самостоятельно создать службу автозавершения, если будете обновлять список пользователей GitHub.

Также обратите внимание, что отправка по ETag сэкономит ваш лимит скорости, если не будет ничего нового для возврата.

person Ian Stapleton Cordasco    schedule 29.08.2013
comment
У них есть этот API: api.github.com/search/users?q=foo и 100 результатов (только первая страница) более чем достаточно для предложений. - person Igor Kroitor; 08.09.2019