Python · API · Середній рівень
Кошик
Додавайте, оновлюйте та видаляйте товари в кошику за допомогою авторизованих запитів.
Короткий вступ до теми та пояснення перед вправами (вправи нижче):
Додавання, оновлення та видалення товарів з кошика
#Довідник Cart API
#Вправи:
Переглянути кошик
#Авторизуйтеся і надішліть GET до /api/cart/. Виведіть кількість товарів у кошику та загальну суму.
import requests BASE_URL = 'https://apilearn.tukas.dev' # 1. Отримайте токен # 2. GET /api/cart/ і виведіть кількість товарів і суму
Рішення
import requests
BASE_URL = 'https://apilearn.tukas.dev'
token = requests.post(f'{BASE_URL}/api/auth/token/', json={
'username': 'ВАШ_ЛОГІН', 'password': 'ВАШ_ПАРОЛЬ',
}).json()['token']
headers = {'Authorization': f'Token {token}'}
cart = requests.get(f'{BASE_URL}/api/cart/', headers=headers).json()
print(len(cart['items']))
print(cart['total_price'])
Додати продукт до кошика
#Знайдіть будь-який продукт із /api/products/ та додайте його до кошика з кількістю 1. Виведіть id елемента кошика з відповіді.
import requests BASE_URL = 'https://apilearn.tukas.dev' # 1. Авторизуйтеся # 2. Візьміть slug продукту з /api/products/ # 3. POST до /api/cart/items/ і виведіть id елемента кошика
Рішення
import requests
BASE_URL = 'https://apilearn.tukas.dev'
token = requests.post(f'{BASE_URL}/api/auth/token/', json={
'username': 'ВАШ_ЛОГІН', 'password': 'ВАШ_ПАРОЛЬ',
}).json()['token']
headers = {'Authorization': f'Token {token}'}
# Взяти перший продукт — взяти його slug
product_slug = requests.get(f'{BASE_URL}/api/products/').json()['results'][0]['slug']
response = requests.post(
f'{BASE_URL}/api/cart/items/',
json={'product_slug': product_slug, 'quantity': 1},
headers=headers,
)
print(response.json()['id'])
Оновити кількість товару
#Додайте продукт до кошика, потім оновіть його кількість до 3 через PATCH /api/cart/items/{id}/. Виведіть оновлену кількість із відповіді.
import requests BASE_URL = 'https://apilearn.tukas.dev' # 1. Авторизуйтеся # 2. Додайте продукт # 3. PATCH кількість до 3
Рішення
import requests
BASE_URL = 'https://apilearn.tukas.dev'
token = requests.post(f'{BASE_URL}/api/auth/token/', json={
'username': 'ВАШ_ЛОГІН', 'password': 'ВАШ_ПАРОЛЬ',
}).json()['token']
headers = {'Authorization': f'Token {token}'}
product_slug = requests.get(f'{BASE_URL}/api/products/').json()['results'][0]['slug']
item = requests.post(
f'{BASE_URL}/api/cart/items/',
json={'product_slug': product_slug, 'quantity': 1},
headers=headers,
).json()
cart_item_id = item['id']
updated = requests.patch(
f'{BASE_URL}/api/cart/items/{cart_item_id}/',
json={'quantity': 3},
headers=headers,
).json()
print(updated['quantity'])
Видалити один товар
#Додайте продукт до кошика, потім видаліть його через DELETE /api/cart/items/{id}/. Перевірте, що кошик порожній, отримавши його знову та вивівши кількість товарів.
import requests BASE_URL = 'https://apilearn.tukas.dev' # 1. Авторизуйтеся # 2. Додайте продукт # 3. Видаліть цей товар # 4. Перевірте що кошик порожній
Рішення
import requests
BASE_URL = 'https://apilearn.tukas.dev'
token = requests.post(f'{BASE_URL}/api/auth/token/', json={
'username': 'ВАШ_ЛОГІН', 'password': 'ВАШ_ПАРОЛЬ',
}).json()['token']
headers = {'Authorization': f'Token {token}'}
product_slug = requests.get(f'{BASE_URL}/api/products/').json()['results'][0]['slug']
item = requests.post(
f'{BASE_URL}/api/cart/items/',
json={'product_slug': product_slug, 'quantity': 1},
headers=headers,
).json()
requests.delete(f'{BASE_URL}/api/cart/items/{item["id"]}/', headers=headers)
cart = requests.get(f'{BASE_URL}/api/cart/', headers=headers).json()
print(len(cart['items']))
Додати два продукти та очистити кошик
#Додайте два різних продукти до кошика. Виведіть загальну суму. Потім очистіть кошик через DELETE /api/cart/items/ та перевірте, що він порожній.
import requests BASE_URL = 'https://apilearn.tukas.dev' # 1. Авторизуйтеся # 2. Додайте два різних продукти # 3. Виведіть суму # 4. Очистіть кошик # 5. Підтвердіть що кошик порожній
Рішення
import requests
BASE_URL = 'https://apilearn.tukas.dev'
token = requests.post(f'{BASE_URL}/api/auth/token/', json={
'username': 'ВАШ_ЛОГІН', 'password': 'ВАШ_ПАРОЛЬ',
}).json()['token']
headers = {'Authorization': f'Token {token}'}
products = requests.get(f'{BASE_URL}/api/products/').json()['results']
product_slugs = [products[0]['slug'], products[1]['slug']]
for slug in product_slugs:
requests.post(
f'{BASE_URL}/api/cart/items/',
json={'product_slug': slug, 'quantity': 1},
headers=headers,
)
cart = requests.get(f'{BASE_URL}/api/cart/', headers=headers).json()
print('сума:', cart['total_price'])
requests.delete(f'{BASE_URL}/api/cart/items/', headers=headers)
cart = requests.get(f'{BASE_URL}/api/cart/', headers=headers).json()
print('товарів після очищення:', len(cart['items']))