通过


REST API 中的数据库视图

支持视图作为数据 API 生成器(DAB)中的表的替代项。 可以通过具有最少配置的 REST 终结点公开视图。

配置

显示视图:

  • source.type 设置为 "view"
  • source.object 设置为完全限定的视图名称
  • 若要唯一标识行,请定义 key-fields
  • 使用 "read" 操作授予权限(如果视图是可更新的,还可以选择其他操作,例如 "create""update""delete"

CLI 示例

dab add BookDetail \
  --source dbo.vw_books_details \
  --source.type "view" \
  --fields.name "id" \
  --fields.primary-key "true" \
  --permissions "anonymous:read"

配置示例

"BookDetail": {
  "source": {
    "type": "view",
    "object": "dbo.vw_books_details",
    "key-fields": [ "id" ]
  },
  "permissions": [
    {
      "role": "anonymous",
      "actions": [ "read" ]
    }
  ]
}

REST 行为

  • 支持所有 REST 谓词:GET、、POSTPUTPATCHDELETE
  • 默认行为与基于表的实体相同
  • 仅当视图可更新且设置适当的权限时,操作才会成功

示例请求

GET /api/BookDetail/id/42

返回vw_books_details中具有id = 42的行。

权限

  • 对只读视图使用 read 操作
  • 仅当视图可更新时,使用 createupdatedelete

局限性

  • key-fields 为必需项
  • 视图不支持关系
  • 如果视图的行为类似于表,则支持分页、筛选和排序