Глава 17 • Работа с API
Repositories returned: 30
Keys: 68
archive_url
assignees_url
blobs_url
...
url
watchers
watchers_count
API GitHub возвращает подробную информацию о каждом репозитории: в
repo_
dict
68 ключей
. Просмотр ключей дает представление о том, какую информацию
можно извлечь о проекте. (Чтобы узнать, какую информацию можно получить
через API, следует либо прочитать документацию, либо проанализировать инфор-
мацию в коде, как мы и поступаем.)
Прочитаем значения некоторых ключей
repo_dict
:
python_repos.py
...
# Анализ информации о репозиториях.
repo_dicts = response_dict['items']
print("Repositories returned:", len(repo_dicts))
# Анализ первого репозитория.
repo_dict = repo_dicts[0]
print("\nSelected information about first repository:")
print('Name:', repo_dict['name'])
print('Owner:', repo_dict['owner']['login'])
print('Stars:', repo_dict['stargazers_count'])
print('Repository:', repo_dict['html_url'])
print('Created:', repo_dict['created_at'])
print('Updated:', repo_dict['updated_at'])
print('Description:', repo_dict['description'])
В программе выводятся значения, связанные с некоторыми ключами словаря пер-
вого репозитория. В точке
выводится имя проекта. Владельца проекта представ-
ляет целый словарь, поэтому в точке
ключ
owner
используется для обращения
к словарю, представляющему владельца, после чего ключ
login
используется для
получения регистрационного имени владельца. В точке
выводится количество
звезд, заработанных проектом, и URL репозитория GitHub проекта. Далее выво-
дится дата создания
и последнего обновления репозитория
. В завершение
выводится описание репозитория; вывод должен выглядеть примерно так:
Status code: 200
Total repositories: 713065
Repositories returned: 30
Selected information about first repository:
Name: httpie
Owner: jkbrzt
Stars: 16101
Использование API веб-приложений
367
Repository: https://github.com/jkbrzt/httpie
Created: 2012-02-25T12:39:13Z
Updated: 2015-07-13T14:56:41Z
Description: CLI HTTP client; user-friendly cURL replacement featuring
intuitive UI, JSON support, syntax highlighting, wget-like downloads,
extensions, etc.
Из вывода видно, что на момент написания книги самым «звездным» проектом
Python на GitHub был проект HTTPie, владельцем которого является пользователь
jkbrzt, и звезды этот проект получил более чем от 16 000 пользователей GitHub. Мы
видим URL репозитория проекта, дату создания (февраль 2012 г.) и то, что проект
недавно обновлялся. Наконец, из описания следует, что HTTPie помогает выдавать
вызовы HTTP из терминала (CLI — сокращение от «Command Line Interface»,
то есть «интерфейс командной строки»).
Сводка самых популярных репозиториев
При построении визуализации этих данных на диаграмму необходимо нанести
более одного репозитория. Напишем цикл для вывода информации о каждом ре-
позитории, возвращаемом вызовом API, чтобы все эти репозитории можно было
включить в визуализацию:
python_repos.py
...
# Анализ информации о репозиториях.
repo_dicts = response_dict['items']
print("Repositories returned:", len(repo_dicts))
print("\nSelected information about each repository:")
for repo_dict in repo_dicts:
print('\nName:', repo_dict['name'])
print('Owner:', repo_dict['owner']['login'])
print('Stars:', repo_dict['stargazers_count'])
print('Repository:', repo_dict['html_url'])
print('Description:', repo_dict['description'])
В точке
выводится приветственное сообщение. В точке
перебираются все
словари в
repo_dicts
. Внутри цикла выводится имя каждого проекта, его владелец,
количество звезд, URL на GitHub и краткое описание проекта:
Status code: 200
Total repositories: 713067
Repositories returned: 30
Selected information about each repository:
Name: httpie
Owner: jkbrzt
Stars: 16101
Repository: https://github.com/jkbrzt/httpie
Description: CLI HTTP client; user-friendly cURL replacement featuring
intuitive UI, JSON support, syntax highlighting, wget-like downloads,
extensions, etc.
368
Достарыңызбен бөлісу: |