Ответ
В работе с HTTP статус-кодами важно понимать их семантику и правильно использовать в API.
Основные группы:
- 2xx (Успех): 200 (OK), 201 (Created), 204 (No Content)
- 3xx (Перенаправление): 301 (Moved Permanently), 302 (Found)
- 4xx (Ошибка клиента): 400 (Bad Request), 401 (Unauthorized), 404 (Not Found)
- 5xx (Ошибка сервера): 500 (Internal Server Error), 503 (Service Unavailable)
Пример REST API:
from flask import Flask, jsonify, abort
app = Flask(__name__)
@app.route('/users/<int:user_id>', methods=['GET'])
def get_user(user_id):
if user_id == 1:
return jsonify({"id": 1, "name": "Alice"}), 200
else:
abort(404, description="User not found")
Нюансы:
- 400 вместо 200 при частичном успехе – иногда лучше явно указать проблему.
- 429 (Too Many Requests) – для rate-limiting.
- 418 (I'm a teapot) – шуточный, но иногда используется для кастомных сценариев.
Главное – соблюдать консистентность и документировать коды в API-контрактах.