Общественная бета -версия Hashnode GraphQL Public Beta была выпущена в 2019 году, чтобы позволить пользователям создавать приложения на основе его. Даже если это был минимальный выпуск, у него есть много запросов и мутаций, которые можно использовать.
Сегодня мы узнаем, как использовать эти запросы API Hashnode в Python, чтобы получить максимальную отдачу от этого.
Шаги по созданию программы Python, чтобы получить данные пользователя с помощью API Hashnode GraphQL:
- Создать запрос в GraphQL
- Добавить запросы и заголовки в программу
- Создайте функцию для запуска запроса JSON
- Получите вывод как словарь JSON
Некоторые предпосылки
- Убедитесь, что в вашей системе установлен модуль запросов, используя
PIP установить запросы
Анкет - Вам необходимо будет создать/отозвать токен личного доступа для цели аутентификации. Вы можете найти его в Настройки разработчика Hashnode Анкет
Персональный токен доступа похож на закрытый ключ к вашей учетной записи Hashnode. Вы можете использовать личный токен доступа для взаимодействия с вашей учетной записью Hashnode, используя наши API. Никогда не раскрывайте свои токены доступа и всегда держите их в частном порядке. Вы можете отозвать сгенерированные токены в любое время. @hashnode
Создание запросов в GraphQL
В этом уроке мы собираемся получить данные пользователя, такие как имя
, Слоган
, NumfOllowers
, PublicationDomain
, так далее. Таким образом, нам нужно будет создать запрос для тех, кто находится в GraphQL.
query { user(username: "magbanum") { username name tagline numFollowers publicationDomain } }
Вы можете добавить больше свойств, таких как numfollowings
, NumReactions
, Место
, фото
, Covermage
С помощью документов и схемы, доступных по адресу Hashnode GraphQL API Анкет
Пока давайте придерживаемся этого запроса. Вы можете заменить «Magbanum» своим собственным именем пользователя, чтобы получить персонализированные результаты.
Посетите https://api.hashnode.com/ и вставьте там приведенный выше запрос и нажмите кнопку «Воспроизведение», чтобы запустить скрипт. Вывод будет выглядеть так,
Добавление запросов и заголовков в программе Python
Теперь вы создали свой первый запрос в GraphQL, давайте использовать его в нашей программе Python.
Создайте файл Python с именем “hashnode-user.py”, вы можете назвать его все, что захотите, но давайте придерживаться “hashnode-user.py” для этого учебника.
Во -первых, импортировать Запросы
модуль, добавив следующую строку,
import requests
Помните личный токен доступа, который вы создали ранее в предпосылке, нам понадобится сейчас. Заголовок авторизации с токеном личного доступа необходим для запуска запросов или мутаций, поэтому мы передадим их к переменной с именем заголовки
.
headers = { "Authorization": "your_personal_access_token" }
Создайте переменную с именем запрос
Чтобы сохранить запрос, который мы создали в GraphQL в качестве многострочной строки.
query = """{ user(username: "magbanum") { username name tagline numFollowers publicationDomain } }"""
Функция для запуска запроса JSON
Теперь мы достигли последнего шага нашего урока. На данный момент мы создали запрос и добавили его в нашу программу. На этом этапе мы создадим функцию, которая принимает запрос в качестве аргумента и возвращает вывод в формате JSON.
- Создайте функцию с именем
run_query
который берет запрос и заголовки, которые мы создали в качестве аргументов. - Теперь опубликуйте запрос в переменной с именем
Ответ
с URL -адресом Hashnode API, запросы и заголовки в качестве параметров. - Если … else оператор используется для возврата вывода JSON, если код состояния составляет 200 Иначе поднимите исключение с кодом состояния. Узнайте больше о кодах статуса в HTTP -запросах Здесь Анкет
Функция будет выглядеть так,
def run_query(query, headers): response = requests.post(url="https://api.hashnode.com", json={'query': query}, headers=headers) if response.status_code == 200: return response.json() else: raise Exception("Query failed to run by returning code of {}. {}".format(response.status_code, query))
Кроме того, нам нужно вызвать нашу функцию и получить данные из нее. Добавьте несколько строк в программу, но вне функции.
result = run_query(query, headers) print(result)
И мы все закончили. Окончательный код будет выглядеть так,
import requests headers = { "Authorization": "your_personal_access_token" } def run_query(query, headers): response = requests.post(url="https://api.hashnode.com", json={'query': query}, headers=headers) if response.status_code == 200: return response.json() else: raise Exception("Query failed to run by returning code of {}.".format(response.status_code)) query = """{ user(username: "magbanum"){ username name tagline numFollowers publicationDomain } }""" result = run_query(query,headers) print(result)
Теперь давайте запустим код.
>>> python hashnode-user.py {'data': {'user': {'username': 'magbanum', 'name': 'Shantanu Nighot', 'tagline': 'Electrical engineer | Self-taught developer | Hashnode blogger', 'numFollowers': 2, 'publicationDomain': 'magbanum.tech'}}}
И посмотрите на это, мы только что использовали API Hashnode для сбора информации из профиля Hashnode. Вы можете видеть, что данные находятся в форме словаря и что, если мы не хотим всего словаря, кроме как его часть. Мы тоже можем это сделать. Это результат
Словарь работает так же, как и словарь Python, поэтому мы сможем индексировать его ключи.
Например, если мы хотим получить слоган пользователя, нам просто нужно указать словарь «результат» как Результат ["DATA"] ["USER"] ["TAGLINE"]
Анкет Замените последнюю строку в коде следующим образом,
print(result["data"]["user"]["tagline"])
Посмотрите на результат, вы получите свой собственный слоган, если замените «Magbanum» своим именем пользователя.
>>> python hashnode-user.py Electrical engineer | Self-taught developer | Hashnode blogger
Этот вид действительно чистый и персонализированный. Попробуйте распечатать кучу других вещей, таких как имя
, PublicationDomain
и NumfOllowers
Анкет
Мы успешно создали запрос в GraphQL, использовали его в нашей программе Python, создали функцию для запуска запроса и получили ожидаемые результаты. Это завершает учебник, и я надеюсь, что вы смогли использовать Hashnode API в своих программах Python.
В качестве следующего шага вы можете добавить пользовательский ввод, чтобы получить имя пользователя для более персонализированных результатов. Посетите GitHub Repo для этого кода.
Я надеюсь, что приведенная выше информация была полезна для вас. Пожалуйста, прокомментируйте, если вы столкнетесь с проблемами с приведенным выше кодом, я постараюсь изо всех сил исправить его. И следуйте за мной на Hashnode за большим количеством таких учебных пособий.
Оригинал: “https://dev.to/magbanum/how-to-use-hashnode-apis-in-python-5b2f”