Запис архітектурного рішення: 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 забезпечує узгоджений, читабельний та галузево стандартний підхід, при цьому його легко впровадити й підтримувати.