Создание RESTful API с помощью Flask с нуля и с минимальным количеством кода.
В этой статье мы отправимся в увлекательное путешествие по созданию RESTful API с помощью Flask – легкого и минималистичного веб-фреймворка Python. Используя простоту и элегантность Flask, мы погрузимся в основные концепции архитектуры REST и продемонстрируем, как создать мощный API с минимальным количеством кода.
Независимо от того, являетесь ли вы новичком, желающим постичь основы, или опытным разработчиком, ищущим освежающий лаконичный подход, это пошаговое руководство поможет вам в кратчайшие сроки овладеть искусством создания надежных API. Давайте начнем!
Шаг 1: Создание виртуальной среды.
Создание виртуальной среды является одним из основных этапов разработки Flask-приложений, поскольку позволяет изолировать зависимости проекта и обеспечить согласованность среды разработки.
Убедитесь, что у вас установлена “virtualenv”, если нет, выполните следующую команду.
pip install virtualenv
Для создания виртуальной среды выполните следующую команду.
virtualenv venv
Следующий шаг – активация виртуальной среды.
Для Windows
venv\Scripts\activate
Для Linux
source venv/bin/activate
Шаг 2: Установите Flask
Для установки Flask в виртуальной среде используйте следующую команду.
pip install flask
Шаг 3: Напишите код и выключите сервер, чтобы проверить, успешно ли прошла настройка.
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_world():
return "<p>Hello, World!</p>"
Чтобы запустить сервер, выполните следующую команду.
#where the debug flag enables auto restart of the server on performing
#changes.
flask --debug run
Теперь перейдите на сайт http://127.0.0.1:5000/, и вы сможете увидеть аналогичный вид в своем браузере.
Шаг 4: Теперь создадим RESTful API.
В RESTful API ресурсы представлены в виде URL-адресов, а взаимодействие с ними осуществляется с помощью стандартных методов HTTP, таких как GET, POST, PUT и DELETE.
Для начала попробуем выполнить GET-запрос.
from flask import Flask, jsonify
app = Flask(__name__)
cars = ['Audi', 'BMW', 'Mercedes']
users = ['user1', 'user2', 'user3']
data = {
"cars":cars,
"users": users,
"success": True
}
@app.route("/")
def index():
return jsonify(data)
Теперь воспользуемся Postman для выполнения GET-запроса.
Чтобы сделать запрос в Postman, выберите GET из доступных типов запросов, введите URL, который обслуживается нашим приложением Flask, и нажмите кнопку Send.
Как видите, мы получили ответ в формате JSON, как и предполагалось. Следовательно, наш GET-запрос действительно был успешным.
Теперь попробуем сделать POST-запрос. Мы должны добавить автомобиль в уже существующий список автомобилей и вернуть в ответ все автомобили.
from flask import Flask, jsonify, request
app = Flask(__name__)
cars = ['Audi', 'BMW', 'Mercedes']
users = ['user1', 'user2', 'user3']
data = {
"cars":cars,
"users": users,
"success": True
}
@app.route("/")
def index():
return jsonify(data)
@app.route('/addCar', methods=["POST"])
def addCar():
data = request.get_json()
cars.append(data['car'])
return jsonify(cars=cars)
Теперь посмотрим, что произойдет при попытке выполнить POST-запрос в Postman.
Итак, чтобы выполнить POST-запрос, необходимо указать его тело как raw и выбрать форматирование JSON. Внутри текстовой области укажите JSON-значение, в нашем случае “car”.
Теперь, когда мы успешно реализовали GET и POST, давайте перейдем к реализации запроса DELETE аналогичным образом.
@app.route('/deleteCar', methods=["DELETE"])
def deleteCar():
cars.pop(0)
return jsonify(cars=cars)
Снова вызовем Postman для выполнения запроса на удаление.
Как видно, 0-й элемент списка, автомобили, был успешно удален.
Запрос PUT может быть использован для обновления заданной сущности на сервере.
В этой статье мы рассмотрели базовую реализацию RESTful API на Flask, в следующих статьях мы обсудим интеграцию нашего приложения на Flask с базой данных и его БЕСПЛАТНОЕ размещение в облаке!