/
statik2002
/
YandexKitAPI
Обзор
Документация
Войти
/
statik2002
/
YandexKitAPI
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
YandexKitAPI.py
132 строки
4 KB
Aleksei Ushakov
first_commit
26 июл 2026, 15:39
26 июл 2026, 15:39
db99672
Код
Авторство
О чём код?
from enum import Enum import requests from requests import HTTPError class YandexKitAPI: class CategoryStatus(Enum): # Category status ACTIVE = 1 ARCHIVED = 2 class GoodsStatus(Enum): PUBLISHED = 1 HIDDEN = 2 ARCHIVED = 3 def __init__(self, api_key, base_url: str= 'https://api.kit.yandex.net'): self.api_key = api_key self.base_url = base_url def get_categories(self, category_status: CategoryStatus = CategoryStatus.ACTIVE, page: int = 1, per_page: int = 25): """ :param category_status: the category status to filter by Active/Archived :param page: the page number default 1 :param per_page: the per_page number default 25 :return: Categories. """ headers = { 'Authorization': f'Bearer {self.api_key}' } params = { 'status': category_status.name, 'page': page, 'per_page': per_page, } url = f'{self.base_url}/v1/categories' try: response_api = requests.get(url, headers=headers, params=params) response_api.raise_for_status() return response_api.json() except HTTPError as http_err: print(f'HTTP error occurred: {http_err}') def get_category_by_id(self, category_id: str): """ :param category_id: Example: 019b21d9-c5d9-777d-80bd-d67c664bc6d9 :return: category description """ headers = { 'Authorization': f'Bearer {self.api_key}' } url = f'{self.base_url}/v1/categories/{category_id}' try: response_api = requests.get(url, headers=headers) response_api.raise_for_status() return response_api.json() except HTTPError as http_err: print(f'HTTP error occurred: {http_err}') def get_products(self, page: int = 1, per_page: int = 25): """ :param page: page number default 1 :param per_page: per_page number default 25 :return: products with description """ headers = { 'Authorization': f'Bearer {self.api_key}' } params = { 'page': page, 'per_page': per_page, } url = f'{self.base_url}/v1/products' try: response_api = requests.get(url, headers=headers, params=params) response_api.raise_for_status() return response_api.json() except HTTPError as http_err: print(f'HTTP error occurred: {http_err}') def get_product_by_id(self, product_id: str): headers = { 'Authorization': f'Bearer {self.api_key}' } url = f'{self.base_url}/v1/products/{product_id}' try: response_api = requests.get(url, headers=headers) response_api.raise_for_status() return response_api.json() except HTTPError as http_err: print(f'HTTP error occurred: {http_err}') def get_goods(self, name: str = '', page: int = 1, per_page: int = 25, product_card_id: str = None, product_id: str = None, status: GoodsStatus = GoodsStatus.PUBLISHED): """ :param name: search by name :param page: page number default 1 :param per_page: per_page number default 25 :param product_card_id: search by card id :param product_id: search by product id :param status: search by status :return: """ headers = { 'Authorization': f'Bearer {self.api_key}' } params = { 'name': name, 'page': page, 'per_page': per_page, 'product_card_id': product_card_id, 'product_id': product_id, 'status': status.name } url = f'{self.base_url}/v1/variants' try: response_api = requests.get(url, headers=headers, params=params) response_api.raise_for_status() return response_api.json() except HTTPError as http_err: print(f'HTTP error occurred: {http_err}')