【问题标题】:lower case model endpoints (user instead of User)小写模型端点(用户而不是用户)
【发布时间】:2018-04-03 04:57:56
【问题描述】:

我希望我的 REST API 端点对模型使用所有小写字母。

在内置User 模型的情况下,我是否可以简单地以User 为基础创建一个名为user 的新模型?还是我应该使用其他方法?

【问题讨论】:

    标签: loopbackjs strongloop


    【解决方案1】:

    有几个选项:

    1. 目前,端点名称不区分大小写,即 /api/users 和 /api/Users 都有效。
    2. 可以在模型定义json中自定义模型端点名称,例如

      "http": {"path": "/my-users"}

    3. 有一个待处理的 PR:https://github.com/strongloop/loopback/pull/433

    4. 正如 Simon 指出的那样,您可以对 User 模型进行子类化。请默认端点名称源自模型名称的复数。

    【讨论】:

      【解决方案2】:

      是的。您只需使用slc loopback:model user 生成一个新模型,按照提示操作,然后将common/models/user.json 中的base 属性值从PersistedModel 更改为User

      我这里有一个例子:https://github.com/strongloop/loopback-example-access-control/blob/master/common/models/user.json#L3

      【讨论】:

        【解决方案3】:

        实现此目的的最佳方法是在您的/server/config.json 文件中将normalizeHttpPath 设置为true

        ...
        "remoting": {
          "rest": {
            ...
            "normalizeHttpPath": true,
          },
        },
        

        normalizeHttpPath 设置为 true 时,它​​(在 HTTP 路径中)从:

        • 大写字母转小写。
        • 下划线 (_) 到破折号 (-)。
        • CamelCase 以破折号分隔。

        例如,“MyClass”或“My_c​​lass”在 HTTP 路径中变为“my-class”。

        注意:它不影响占位符(例如“:id”)。

        更多信息,请查看config.json官方文档中的remoting properties

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-03-06
          • 2018-02-02
          • 2017-05-09
          • 2015-12-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多