Запись архитектурного решения: snake_case или camelCase для REST API?
Решение: для конечных точек REST API будет использоваться соглашение об именовании snake_case
Состояние: принято
Контекст
В соглашениях об именовании для REST API есть два популярных формата: snake_case и camelCase. В формате snake_case каждое слово в имени отделяется подчёркиванием, а в camelCase первое слово имени пишется строчными буквами, а у последующих слов первая буква заглавная. Это решение определит, какое соглашение об именовании следует использовать для REST API.
Факторы решения
Согласованность с существующими соглашениями об именовании в проекте
Читаемость и ясность для всех, кто может работать с API
Соответствие отраслевым лучшим практикам соглашений об именовании REST API
Простота реализации и сопровождения
Решение
Для конечных точек REST API будет использоваться соглашение об именовании snake_case. Этот выбор обусловлен следующими факторами:
Согласованность: проект уже использует соглашение об именовании snake_case для всех конечных точек, и было бы полезно сохранить его, чтобы обеспечить согласованность во всём проекте.
Читаемость и ясность: соглашение snake_case более читаемо и проще для понимания. Подчёркивания чётко разделяют слова, облегчая разбор и понимание смысла имени.
Соответствие отраслевым лучшим практикам: соглашение snake_case широко используется в отрасли и считается лучшей практикой для REST API, что делает его хорошим выбором для проекта.
Простота реализации и сопровождения: сохранение существующего соглашения об именовании проще реализовать и сопровождать, так как при выборе нового соглашения пришлось бы обновлять весь существующий код и документацию.
Последствия
У этого решения есть потенциальные последствия.
Если новые члены команды, присоединяющиеся к проекту, не знакомы с соглашением snake_case, это может привести к путанице и ошибкам в разработке. Однако, поскольку snake_case — широко используемое соглашение, такой риск минимален.
Если в проекте используются другие инструменты или фреймворки, в значительной степени основанные на соглашении camelCase, преобразование между соглашениями об именовании может потребовать дополнительных усилий. Однако это не вызывает серьёзных опасений, так как проект стандартизировал соглашение snake_case.
В целом решение использовать соглашение об именовании snake_case для конечных точек REST API даёт согласованный, читаемый и соответствующий отраслевым стандартам подход, при этом лёгкий в реализации и сопровождении.