На каком ключевом понятии основана архитектура REST API

Ответ

Архитектура 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:

  1. Клиент-серверная архитектура: Четкое разделение между клиентом (UI) и сервером (хранение данных).
  2. Отсутствие состояния (Stateless): Каждый запрос от клиента должен содержать всю информацию, необходимую для его выполнения. Сервер не хранит сессионное состояние клиента.
  3. Кэширование (Cacheable): Ответы сервера должны явно помечаться как кэшируемые или некэшируемые.
  4. Единообразный интерфейс (Uniform Interface): Общий стандарт взаимодействия (URI для ресурсов, HTTP-методы для операций, JSON/XML для представления).