Sobes.tech
Back to questions
Middle — Senior
71

Каким образом вы проектировали систему с использованием принципов RESTful архитектуры?

Answer from AI

sobes.tech AI

При проектировании системы с использованием принципов RESTful архитектуры в Python я следую основным принципам:

  • Ресурсо-ориентированность: каждая сущность системы представляется как ресурс с уникальным URI.
  • Использование стандартных HTTP методов: GET для получения данных, POST для создания, PUT/PATCH для обновления, DELETE для удаления.
  • Статус-коды HTTP: корректное использование кодов ответа для отражения результата операции (например, 200, 201, 404, 400, 500).
  • Отсутствие состояния (stateless): сервер не хранит состояние клиента между запросами.
  • Использование форматов данных, таких как JSON, для обмена информацией.

Пример с использованием Flask:

from flask import Flask, jsonify, request

app = Flask(__name__)

items = {}

@app.route('/items/<int:item_id>', methods=['GET'])
def get_item(item_id):
    item = items.get(item_id)
    if item:
        return jsonify(item), 200
    else:
        return jsonify({'error': 'Not found'}), 404

@app.route('/items', methods=['POST'])
def create_item():
    data = request.get_json()
    item_id = len(items) + 1
    items[item_id] = data
    return jsonify({'id': item_id}), 201

if __name__ == '__main__':
    app.run()

Такой подход обеспечивает простоту, масштабируемость и совместимость с клиентами.