【问题标题】:REST API - Exclude fields by defaultREST API - 默认情况下排除字段
【发布时间】:2020-03-12 04:43:20
【问题描述】:

我目前在设计 API 时遇到问题。这是我的初稿:

Endpoint: /api/v1/orders/{id}/tracking

{
    "state": "on_the_way",
    "location": {
        "latitude": -6.123,
        "longitude": 102.123
    },
    "distance": {
        "value": 10,
        "unit": "meters"
    },
    "duration": {
        "value": 10,
        "unit": "minutes"
    }
}

事实证明,产品团队希望它默认排除 distanceduration,因为它使用的是 Google 地图的距离矩阵 API,这会影响我们的计费。如果我想显示distanceduration,查询参数会是什么样子?

有没有惯用的方法来做到这一点?我认为我不能在这里使用稀疏字段集、包含或排除。

【问题讨论】:

    标签: json rest api


    【解决方案1】:

    /api/v1/orders/{id}/tracking/full

    包括距离和持续时间。我倾向于将参数视为RPC 而不是REST。例如/tracking?type=full

    /api/v1/orders/{id}/tracking

    然后将是仅状态和位置的默认端点。

    您可以使用 HATEOS 在响应中包含完整的跟踪网址。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-25
      • 1970-01-01
      • 1970-01-01
      • 2012-02-29
      • 1970-01-01
      • 2010-12-02
      • 2012-11-24
      相关资源
      最近更新 更多