Использование REST API с Python
Для запроса данных о физической активности (незавершенных работ) из Terra требуются HTTP-запросы, поэтому я пишу здесь важное руководство по использованию REST API с Python.
Во-первых, давайте определим, что такое REST API. REST означает передачу репрезентативного состояния и представляет собой архитектурный стиль программного обеспечения, определяющий набор ограничений для создания веб-служб. REST API используются для стандартизированного доступа к веб-ресурсам и управления ими.
Чтобы использовать REST API с Python, мы можем использовать модуль requests . Модуль requests — это популярный модуль Python для создания HTTP-запросов. Это позволяет нам отправлять HTTP-запросы и получать ответы от веб-сервера.
Вот пример использования модуля requests для выполнения запроса GET к REST API:
import requests # Make a GET request to the API endpoint response = requests.get('https://www.example.com/api/endpoint') # Check the status code of the response if response.status_code == 200: # If the response is successful (200), read the data from the response data = response.json() # Print the data print(data) else: # If the response is not successful, print the error print(response.status_code)
В приведенном выше примере мы отправляем запрос GET к конечной точке API https://www.example.com/api/endpoint и считываем данные ответа в формате JSON. Если ответ успешен (код состояния 200), мы печатаем данные, в противном случае мы печатаем код состояния ошибки.
В дополнение к запросам GET мы также можем использовать модуль requests для выполнения других типов HTTP-запросов, таких как POST, PUT и DELETE. Вот пример того, как сделать запрос POST к API:
import requests # Set the API endpoint URL url = 'https://www.example.com/api/endpoint' # Set the data to be sent in the request data = 'key1': 'value1', 'key2': 'value2' > # Make a POST request to the API endpoint response = requests.post(url, data=data) # Check the status code of the response if response.status_code == 200: # If the response is successful (200), read the data from the response data = response.json() # Print the data print(data) else: # If the response is not successful, print the error print(response.status_code)
В этом примере мы отправляем запрос POST к конечной точке API по адресу https://www.example.com/api/endpoint с данными
В противном случае мы печатаем ошибку.
REST API
REST API — это способ взаимодействия сайтов и веб-приложений с сервером. Его также называют RESTful.

Освойте профессию
«Fullstack-разработчик на Python»
Термин состоит из двух аббревиатур, которые расшифровываются следующим образом.
API (Application Programming Interface) — это код, который позволяет двум приложениям обмениваться данными с сервера. На русском языке его принято называть программным интерфейсом приложения.
REST (Representational State Transfer) — это способ создания API с помощью протокола HTTP. На русском его называют «передачей состояния представления».
Технологию REST API применяют везде, где пользователю сайта или веб-приложения нужно предоставить данные с сервера. Например, при нажатии иконки с видео на видеохостинге REST API проводит операции и запускает ролик с сервера в браузере. В настоящее время это самый распространенный способ организации API. Он вытеснил ранее популярные способы SOAP и WSDL.
У RESTful нет единого стандарта работы: его называют «архитектурным стилем» для операций по работе с сервером. Такой подход предложил в 2000 году в своей диссертации программист и исследователь Рой Филдинг, один из создателей протокола HTTP.
Профессия / 12 месяцев
Веб-разработчик с нуля
Создавайте нужные любому бизнесу сервисы

Читайте также Востребованные IT-профессии 2023 года: на кого учиться онлайн
Принципы REST API
У RESTful есть 7 принципов написания кода интерфейсов.
Отделение клиента от сервера (Client-Server). Клиент — это пользовательский интерфейс сайта или приложения, например, поисковая строка видеохостинга. В REST API код запросов остается на стороне клиента, а код для доступа к данным — на стороне сервера. Это упрощает организацию API, позволяет легко переносить пользовательский интерфейс на другую платформу и дает возможность лучше масштабировать серверное хранение данных.
Отсутствие записи состояния клиента (Stateless). Сервер не должен хранить информацию о состоянии (проведенных операций) клиента. Каждый запрос от клиента должен содержать только ту информацию, которая нужна для получения данных от сервера.
Кэшируемость (Casheable). В данных запроса должно быть указано, нужно ли кэшировать данные (сохранять в специальном буфере для частых запросов). Если такое указание есть, клиент получит право обращаться к этому буферу при необходимости.
Единство интерфейса (Uniform Interface). Все данные должны запрашиваться через один URL-адрес стандартными протоколами, например, HTTP. Это упрощает архитектуру сайта или приложения и делает взаимодействие с сервером понятнее.
Многоуровневость системы (Layered System). В RESTful сервера могут располагаться на разных уровнях, при этом каждый сервер взаимодействует только с ближайшими уровнями и не связан запросами с другими.
Предоставление кода по запросу (Code on Demand). Серверы могут отправлять клиенту код (например, скрипт для запуска видео). Так общий код приложения или сайта становится сложнее только при необходимости.
Начало от нуля (Starting with the Null Style). Клиент знает только одну точку входа на сервер. Дальнейшие возможности по взаимодействию обеспечиваются сервером.
Стандарты и методы
Сам по себе RESTful не является стандартом или протоколом. Разработчики руководствуются принципами REST API для создания эффективной работы серверов для своих сайтов и приложений. Принципы позволяют выстраивать серверную архитектуру с помощью других протоколов: HTTP, URL, JSON и XML.
Это отличает REST API от метода простого протокола доступа к объектам SOAP (Simple Object Access Protocol), созданного Microsoft в 1998 году. В SOAP взаимодействие по каждому протоколу нужно прописывать отдельно только в формате XML. Также в SOAP нет кэшируемости запросов, более объемная документация и реализация словаря, отдельного от HTTP. Это делает стиль REST API более легким в реализации, чем стандарт SOAP.
Несмотря на отсутствие стандартов, при создании REST API есть общепринятые лучшие практики, например:
- использование защищенного протокола HTTPS
- использование инструментов для разработки API Blueprint и Swagger
- применение приложения для тестирования Get Postman
- применение как можно большего количества HTTP-кодов (список)
- архивирование больших блоков данных

Станьте Frontend-разработчиком
и создавайте интерфейсы сервисов, которыми пользуются все
Архитектура
REST API основывается на протоколе передачи гипертекста HTTP (Hypertext Transfer Protocol). Это стандартный протокол в интернете, созданный для передачи гипертекста. Сейчас с помощью HTTP отправляют любые другие типы данных.
Каждый объект на сервере в HTTP имеет свой уникальный URL-адрес в строгом последовательном формате. Например, второй модуль обучающего видео про Python будет храниться на сервере по адресу http://school.ru/python/2.
В REST API есть 4 метода HTTP, которые используют для действий с объектами на серверах:
- GET (получение информации о данных или списка объектов)
- DELETE (удаление данных)
- POST (добавление или замена данных)
- PUT (регулярное обновление данных)
Такие запросы еще называют идентификаторами CRUD: create (создать), read (прочесть), update (обновить) delete (удалить). Это стандартный набор действий для работы с данными. Например, чтобы обновить видео про Python по адресу http://school.ru/python/2 REST API будет использовать метод PUT, а для его удаления — DELETE.
В каждом HTTP-запросе есть заголовок, за которым следует описание объекта на сервере — это и есть его состояние.

Как работает RESTful
Например, на сайте отеля есть система бронирования номеров трех типов: эконом, стандарт и люкс. В REST API каждому типу будет присвоен свой URL на странице бронирования:
Такие URL однозначно определяют ресурс на сервисе — данные о доступных номерах каждого класса. Чтобы взаимодействовать с этими ресурсам REST API применяет CRUD-команды протокола HTTP. Например, GET econom для передачи клиенту информации о номерах класса эконом. В RESTful такие запросы будут кэшироваться — клиенту не нужно обращаться к серверу снова при повторном запросе.
Также такая архитектура позволяет расставить приоритеты в обслуживании. Например, использование более производительных серверов для запросов на номера класса люкс. Такую архитектуру легко масштабировать: при появлении новых классов номеров, система будет обращаться напрямую к ресурсам по новым URL.
Где применяют
REST API рекомендуют использовать в следующих случаях:
- ограниченная пропускная способность соединения с сервером;
- есть необходимость кэшировать запросы;
- приложение или сайт будет значительно масштабироваться;
- приложение или сайт использует AJAX (метод фонового обмена данными с сервером).
REST API используют чаще альтернативных методов, например SOAP. Помимо сайтов и веб-приложений RESTful используют для облачных вычислений.
Например, REST API используется в социальной сети Twitter. Запросы отправляются в формате JSON. Разработчики сторонних приложений могут использовать данные Twitter с помощью REST-запросов. Например:
GET geo/id/:place_id
Возвращает информацию о местоположении пользователей.
GET geo/reverse_geocode
Возвращает до 20 возможных местоположений по заданным координатам.
Возвращает местоположения, которые могут быть прикреплены к твитам.
Полезные ссылки
Веб-разработчик с нуля
Веб-разработчик — мастер на все руки. Он создает программы и приложения для любых сфер и компаний: от небольшой кофейни до международных банков. Станьте специалистом, который создает востребованный продукт

Статьи по теме:
Как использовать Python для работы с REST API
Изучите основы работы с REST API с помощью Python и библиотеки Requests, чтобы легко взаимодействовать с веб-сервисами.

Алексей Кодов
Автор статьи
23 июня 2023 в 18:40
В этой статье мы рассмотрим, как использовать Python для работы с REST API. REST API (Representational State Transfer) — это стандартный способ взаимодействия между различными компонентами системы через HTTP(s) протокол. Многие веб-сервисы предоставляют API для доступа к своим данным и функционалу.
Библиотека Requests
Для работы с REST API в Python одной из наиболее популярных библиотек является Requests. Эта библиотека позволяет отправлять HTTP-запросы и обрабатывать ответы от сервера.
Для установки библиотеки Requests используйте следующую команду:
pip install requests
Основы работы с Requests
Давайте рассмотрим основные методы, которые предоставляет библиотека Requests для работы с REST API:
GET-запрос
Пример отправки GET-запроса и обработки ответа:
import requests response = requests.get("https://jsonplaceholder.typicode.com/posts") if response.status_code == 200: data = response.json() print(data) else: print("Ошибка:", response.status_code)
POST-запрос
Пример отправки POST-запроса с данными:
import requests url = "https://jsonplaceholder.typicode.com/posts" data = < "title": "My new post", "body": "Hello, world!", "userId": 1 >response = requests.post(url, json=data) if response.status_code == 201: print("Данные успешно отправлены") print(response.json()) else: print("Ошибка:", response.status_code)
Python-разработчик: новая работа через 9 месяцев
Получится, даже если у вас нет опыта в IT

PUT-запрос
Пример отправки PUT-запроса для обновления данных:
import requests url = "https://jsonplaceholder.typicode.com/posts/1" data = < "title": "Updated post", "body": "New content", "userId": 1 >response = requests.put(url, json=data) if response.status_code == 200: print("Данные успешно обновлены") print(response.json()) else: print("Ошибка:", response.status_code)
DELETE-запрос
Пример отправки DELETE-запроса для удаления данных:
import requests url = "https://jsonplaceholder.typicode.com/posts/1" response = requests.delete(url) if response.status_code == 200: print("Данные успешно удалены") else: print("Ошибка:", response.status_code)
Теперь вы знаете основы работы с REST API с помощью Python и библиотеки Requests. Эти знания помогут вам взаимодействовать с различными веб-сервисами и получать доступ к их данным.
Для дополнительной информации и более сложных примеров работы с REST API, рекомендуем обратиться к документации библиотеки Requests: https://docs.python-requests.org/en/master/
Не забывайте практиковаться и экспериментировать с различными API. Удачи вам в изучении Python и работе с REST API!
Как создать RESTful API на Python
Узнайте, как создать RESTful API на Python с использованием Flask, для легкого взаимодействия с системами и сервисами.

Алексей Кодов
Автор статьи
23 июня 2023 в 18:42
Создание RESTful API на Python является важным навыком для любого разработчика, поскольку API играют центральную роль в современных веб-приложениях. В этой статье мы рассмотрим основы создания RESTful API с использованием Python и популярного фреймворка Flask.
Что такое RESTful API?
RESTful API (Representational State Transfer) — это архитектурный стиль, который определяет набор ограничений для создания веб-сервисов. RESTful API позволяют разработчикам легко взаимодействовать с различными системами и сервисами, используя стандартные HTTP-методы, такие как GET, POST, PUT и DELETE.
Подготовка окружения
Для начала установим фреймворк Flask:
pip install Flask
Теперь создадим новый файл app.py и импортируем необходимые модули:
from flask import Flask, jsonify, request app = Flask(__name__)
В этом примере мы используем функцию jsonify для преобразования словаря Python в JSON-объект.
Создание маршрутов
Для создания RESTful API нам нужно определить маршруты, которые будут обрабатывать HTTP-запросы. Воспользуемся декоратором @app.route для определения маршрутов:
@app.route('/api/v1/tasks', methods=['GET']) def get_tasks(): tasks = [ , ] return jsonify()
Здесь мы определили конечную точку /api/v1/tasks с HTTP-методом GET. Эта функция возвращает список задач в формате JSON.
Python-разработчик: новая работа через 9 месяцев
Получится, даже если у вас нет опыта в IT

Запуск приложения
Чтобы запустить наше приложение, добавим следующий код в конец файла app.py :
if __name__ == '__main__': app.run(debug=True)
Теперь, когда мы запустим наше приложение командой python app.py , оно будет доступно по адресу http://127.0.0.1:5000 .
Расширение API
Мы можем расширить наш API, добавив функциональность создания, обновления и удаления задач. Для этого добавим новые маршруты и соответствующие функции:
@app.route('/api/v1/tasks', methods=['POST']) def create_task(): # Здесь будет код для создания задачи @app.route('/api/v1/tasks/<int:task_id>', methods=['PUT']) def update_task(task_id): # Здесь будет код для обновления задачи @app.route('/api/v1/tasks/<int:task_id>', methods=['DELETE']) def delete_task(task_id): # Здесь будет код для удаления задачи
Не забывайте протестировать ваш API с помощью инструментов, таких как Postman или curl.
В заключение, создание RESTful API на Python с использованием Flask — относительно простая задача. Следуя приведенным выше примерам, вы сможете создать собственное API для ваших проектов. Удачи в разработке!
