@XG22

Регистр для ключей JSON?

Здесь должна быть шутка о том, что самое сложное в программировании - это придумывать названия переменным.

Здравствуйте, коллеги.
С новой командой разрабатываем проект. Предполагается web-интерфейс в виде spa на vue и публичный api. Формат Обмена данными между сервером и клиентом - json.
И возникла дискуссия о том, какой регистр использовать для ключей объекта json - camelCase или snake_case.
Везде, где я работал, мы в основном использовали snake_case, но больше по историческим причинам.
Было предложение остановиться на camelCase. В js преимущественно используется этот регистр для именования сущностей. Но коллега возразил, что для публичного api лучше использовать snake_case - более распостранённый подход, будет более привычно для пользователей api.
В целом, мы на spa и api отдаём немного разные наборы данных, так что технически ничто не мешает использовать camelCase для spa и snake_case для api. Но лично мне хотелось бы придерживаться единого подхода.
И тут возникает ещё одна проблема. Я уже написал, что spa и api получают немного разные наборы данных, но вот получаем мы данные с api и spa одинаковые. И вот тут уже разделение никак не получится, поскольку для валидации и прочего нужно будет писать разные классы. Либо городить какие-нибудь мапперы, что в данном случае будет явно лишним.
Было ещё предложение возвращать объекты с ключами в camelCase, а получать - в snake_case. Но на мой взгляд, это предложение совсем уж никуда не годиться. На мой взгляд, разный регистр для входящих и исходящих данных не имеет смысла.

Я понимаю, что данный вопрос не имеет однозначного ответа и не может быть правильного и неправильного подхода.
Хочется в основном собрать мнения, статистику.
Какой подход преимущественно используете вы и почему?
  • Вопрос задан
  • 166 просмотров
Решения вопроса 1
Не важно как, главное чтобы было единообразно, а не вот так:

Было ещё предложение возвращать объекты с ключами в camelCase, а получать - в snake_case
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы