【问题标题】:Backend/frontend/API naming convention后端/前端/API 命名约定
【发布时间】:2020-06-23 23:53:17
【问题描述】:

例如,我们有 2 个用 Java、C# 编写的微服务。 带有打字稿的前端。 Java 使用驼峰式案例,并且有一个带有查询参数和 JSON 响应的 GET, C# 使用 pascal case,并且有一个带有查询参数和 JSON 响应的 GET。 TypeScript 使用驼峰式大小写和两种 GET。

第一个问题是: 我们是否需要对 GET 中的查询参数和 JSON 使用不同的情况(C# - pascal case 和 Java - camel case),或者我们需要对所有源使用一种约定? 查询参数和JSON也必须有相同的情况,不是吗?

第二个问题是: 如果我已经有了一些带有查询参数和 JSON 的 API,在帕斯卡的情况下。我需要写一些“规范化器”来将帕斯卡案例映射到骆驼案例吗? 仅从我的角度来看,前端、后端和 API 可以有不同的约定,但开发人员需要映射来自其他地方的数据。但是在前端为来自 API 的所有数据编写许多“序列化”可能是超重的。

根据我的经验,我开发了这个项目,所有部分都使用骆驼案例,但我也开发了后端和 API 使用帕斯卡案例,前端使用骆驼案例的应用程序,但我在上一个中遇到了一些问题。

只是想看看你对这个主题的看法并知道你是怎么做到的?很高兴看到你自己的例子和经验。非常感谢!

【问题讨论】:

    标签: rest api architecture naming conventions


    【解决方案1】:

    几周前,我们在我现在正在进行的项目中遇到了同样的问题,并考虑了以下几点:

    1. 我们希望“面向公众”的实体具有相同的约定(端点、JSON DTO 等)
    2. 我们想区分函数/方法和变量
    3. 我们不想影响技术内部的学习行为

    我们进一步认为,snake_case 比 camelCase 或 PascalCase (https://en.wikipedia.org/wiki/Camel_case#Readability_studies) 更易被人类阅读。

    因此,我们同意 JSON 中的键是 snake_case 以提高可读性以及变量名称,只要该语言对此没有太多意见(即,我们对 JavaScript 采用了 snake_case,但对 Java 没有采用)。

    进一步我们同意端点是camelCase,因为它是一个类似构造的方法/函数。我们选择 camelCase 而不是 PascalCase,因为 PascalCase 在类名通常是 PascalCase 方面可能会产生误导。我们甚至将 camelCase 用于 JavaScript 函数。

    到目前为止效果还不错。希望有帮助。

    【讨论】:

    • 所以,据我所知,您的决定是:后端将 JSON 从其约定映射到 API 约定,而前端使用与 API 相同的约定。另外,后端是否使用 PascalCase 获取查询参数并将其映射到自己的约定?
    猜你喜欢
    • 1970-01-01
    • 2021-05-25
    • 2021-07-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-14
    • 2021-12-24
    • 1970-01-01
    • 2020-04-02
    相关资源
    最近更新 更多