Ответ
Архитектура REST (Representational State Transfer) основана на концепции ресурсов.
Ресурс — это любая сущность (например, пользователь, заказ, товар), которой можно дать уникальный идентификатор URI (Uniform Resource Identifier). Взаимодействие с ресурсами происходит через стандартные HTTP-методы, которые определяют выполняемое действие:
GET
: Получение представления ресурса.POST
: Создание нового ресурса.PUT
: Полное обновление существующего ресурса.PATCH
: Частичное обновление существующего ресурса.DELETE
: Удаление ресурса.
Пример на Flask (Python):
from flask import Flask, jsonify, request
app = Flask(__name__)
# /users - это коллекция ресурсов "пользователи"
users = {1: {"name": "Alice"}, 2: {"name": "Bob"}}
# Получение всех пользователей (GET /users)
@app.route('/users', methods=['GET'])
def get_users():
return jsonify(users)
# Создание нового пользователя (POST /users)
@app.route('/users', methods=['POST'])
def create_user():
new_user = request.json
user_id = max(users.keys()) + 1
users[user_id] = new_user
return jsonify(new_user), 201 # 201 Created
Ключевые принципы REST:
- Клиент-серверная архитектура: Четкое разделение между клиентом (UI) и сервером (хранение данных).
- Отсутствие состояния (Stateless): Каждый запрос от клиента должен содержать всю информацию, необходимую для его выполнения. Сервер не хранит сессионное состояние клиента.
- Кэширование (Cacheable): Ответы сервера должны явно помечаться как кэшируемые или некэшируемые.
- Единообразный интерфейс (Uniform Interface): Общий стандарт взаимодействия (URI для ресурсов, HTTP-методы для операций, JSON/XML для представления).