V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
akmisty
V2EX  ›  问与答

请教关于 RESTful API 的 JSON key 用下划线还是驼峰的问题

  •  1
     
  •   akmisty · 2020-01-29 01:47:28 +08:00 · 5036 次点击
    这是一个创建于 1794 天前的主题,其中的信息可能已经有所发展或是发生改变。

    任务

    小弟最近接到任务要用 PHP 写一个 API 中心,为各种客户端提供接口,

    现在制定代码规范的时候,和前端讨论了一下,在 key 的命名上比较纠结

    在各客户端的代码规范里, 网页 / 小程序 / iOS / Android, 基本都是驼峰命名

    数据库

    • 数据库字段的命名是下划线,所以数据从数据库查出来都是下划线

    A 方案

    • 输入输出的 JSON key 都以下划线命名
    • 前端要么统一命名为下划线,要么两种混用,要么自己写个方法转 key
    • 折磨前端 后端舒服

    B 方案

    • 输入输出的 JSON key 输入输出时都用驼峰
    • 后端 获得输入时转换为下划线,输出时转换为下划线
    • 前端舒服 折磨后端

    想问问各位道友的推荐或其他方案?

    5 条回复    2020-01-30 01:00:44 +08:00
    Mithril
        1
    Mithril  
       2020-01-29 02:25:50 +08:00
    一般不会直接拼 JSON 字符串的,都是通过库直接序列化某个对象。
    JSON 库一般都可以配置或者重写序列化时的命名方法的,后端直接改一下就好了。
    ragnaroks
        2
    ragnaroks  
       2020-01-29 03:39:59 +08:00
    把 PHP 换成 C#/JAVA,那么就不存在此问题了
    nvkou
        3
    nvkou  
       2020-01-29 03:45:41 +08:00 via Android
    首先数据输入都不可信,不管有意无意,不然污染数据库。然后我投 b
    FaceBug
        4
    FaceBug  
       2020-01-29 18:11:12 +08:00
    我个人是和不喜欢用收到的参数直接去查找数据库的,返回数据也是。另外我选 B。
    akmisty
        5
    akmisty  
    OP
       2020-01-30 01:00:44 +08:00
    @nvkou @cepczkd
    收到的参数都会经过验证,才会到到下一步去查数据库,这点没问题,
    我现在倾向后端麻烦点,统一输入输出的 key 为驼峰,而后端 PHP 变量命名仍用下划线,
    在输入时通过中间件将 key 转为 下划线,
    在输出时通过中间件将 key 转为 驼峰,
    不知就 PHP 而言,还有没 可以改进的地方?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1009 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 22:17 · PVG 06:17 · LAX 14:17 · JFK 17:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.