Недавно решали следующую задачу: нужно было определиться как будет выглядеть единый формат тела ответов с кодами 4хх/5хх, т.к. имели исторически «кто и во что горазд».
Решением стал: документ RFC 7807.
Документ предлагает общий способ описания ошибок. С ним каждая ошибка будет описана понятно и одинаково.
Вот что нужно указать:
type — какой вид ошибки;
title — короткое описание ошибки;
status — код ошибки (например, 404);
detail — подробности об ошибке;
instance — уникальный номер проблемы.
Пример:
{
"type": "https://example.com/probs/out-of-credit",
"title": "У вас недостаточно денег.",
"status": 500,
"detail": "Ваш баланс — 30, а нужно 50.",
"instance": "/account/12345/msgs/abc"
}
Что такое RFC?
RFC (Request for Comments) — это специальные документы, которые помогают договариваться о том, как что-то должно работать в интернете. Они объясняют правила и дают советы.
RFC бывают нескольких типов, и каждый из них решает разные задачи:
📜 Обязательные правила — это как законы. Например, RFC 7231 объясняет, как работает интернет-протокол HTTP/1.1.
💡 Советы — это полезные подсказки. Например, RFC 8259 рассказывает, как правильно работать с данными в формате JSON.
🧪 Эксперименты — это новые идеи, которые тестируются. Например, как улучшить скорость запросов.
🕰 История — это старые правила, которые уже не используют, но их хранят для понимания прошлого.
Что это даёт?
✅ Порядок: все сообщения об ошибках выглядят одинаково.
🚀 Удобство: разработчики сразу понимают, в чём проблема.
🤝 Совместимость: системы легко работают вместе.
Вам могут пригодиться следующие RFC:
🌐 RFC 7231: HTTP/1.1 — как работать с запросами и ответами;
🔄 RFC 7232: Условные запросы — чтобы не загружать лишние данные;
📦 RFC 7233: Части запросов — для работы с большими файлами;
🗂 RFC 7234: Кэширование — чтобы серверы работали быстрее.
📃 RFC 8259: JSON — простой способ передавать данные;
🆔 RFC 9562: UUIDs - типы UUID.
Был ли у вас опыт использования RFC или, может быть, на собеседованиях про это спрашивали?
—————
Как тебе материал? Ставь 👍, если годится)
Спасибо за обратную связь и отличной ❄️ недели!
made in: @pro_system_analysis
❗️Экспресс оценка резюме: по ссылке
