Создание масштабируемых систем: REST-api и микросервисы. Разработчик

Читать онлайн.
Название Создание масштабируемых систем: REST-api и микросервисы
Автор произведения Разработчик
Жанр
Серия
Издательство
Год выпуска 2025
isbn



Скачать книгу

запросы, которые зависят от контекста. Например, если мы имеем REST-api, который предоставляет информацию о товарах, можем определить динамический маршрут, будет запросы на основе категории товара:

      ```python

      from flask import Flask, jsonify

      app = Flask(__name__)

      Динамический маршрут для получения информации о товаре

      @app.route('/products/<string:category>/<int:product_id>', methods=['GET'])

      def get_product(category, product_id):

      product = Product.query.filter_by(category=category, id=product_id).first()

      return jsonify({'name': product.name, 'price': product.price})

      if __name__ == '__main__':

      app.run()

      ```

      В этом примере мы определяем динамический маршрут `/products/<string:category>/<int:product_id>`, который обрабатывает GET-запросы и возвращает информацию о товаре с заданной категорией ID.

      Обработка запросов

      Обработка запросов – это процесс выполнения действий, необходимых для ответа на запрос. В REST-api обработка обычно осуществляется с помощью контроллеров, которые вызывают необходимые методы действий.

      Пример обработки запроса

      Допустим, у нас есть REST-api, который предоставляет информацию о пользователях. Мы можем определить контроллер, будет обрабатывать запросы к этому ресурсу:

      ```python

      from flask import Flask, jsonify

      from flask_sqlalchemy import SQLAlchemy

      app = Flask(__name__)

      app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.db'

      db = SQLAlchemy(app)

      class User(db.Model):

      id = db.Column(db.Integer, primary_key=True)

      name = db.Column(db.String(100), nullable=False)

      email = db.Column(db.String(100), nullable=False)

      Контроллер для обработки запросов к ресурсу пользователей

      class UserController:

      def get_user(self, user_id):

      user = User.query.get(user_id)

      return jsonify({'name': user.name, 'email': user.email})

      def create_user(self, name, email):

      user = User(name=name, email=email)

      db.session.add(user)

      db.session.commit()

      return jsonify({'message': 'Пользователь создан'})

      if __name__ == '__main__':

      app.run()

      ```

      В этом примере мы определяем контроллер `UserController`, который имеет методы для обработки GET-запросов и создания новых пользователей.

      Вывод

      В этой главе мы рассмотрели основы маршрутизации и обработки запросов в REST-api. Мы увидели, как можно определить статические динамические маршруты, а также обрабатывать запросы с помощью контроллеров. следующей поговорим о том, использовать микросервисы для создания масштабируемых систем.

      Глава 3. Микросервисы: архитектура и принципы

      3.1. Что такое микросервисы?

      В предыдущих главах мы обсуждали важность масштабируемости и гибкости в современных системах. Теперь переходим к одному из наиболее интересных перспективных подходов созданию таких систем – микросервисам.

      Микросервисы – это архитектурный стиль, который предполагает разбиение большой системы на множество небольших, независимых сервисов, каждый из которых отвечает за конкретную функциональность. Каждый сервис работает самостоятельно, имеет свою собственную базу данных и может быть развернут масштабирован независимо от других сервисов.

      Конец ознакомительного фрагмента.

      Текст предоставлен ООО «Литрес».

      Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.

      Безопасно