第十章 REST
客户端方法
数据平台 DocDB REST
客户端 API
提供了使能够通过 REST
使用 DocDB
的方法。 REST API
与其他 DocDB API
不同,因为 REST
作用于资源,而其他 API
作用于对象。这种资源导向是 REST
本质的基础。
本章中的curl
示例指定端口号57774
。这只是一个示例。应该使用适合 IRIS
实例的端口号。
在curl
中,GET
命令是默认的;因此,省略 -X GET
的curl
命令默认为-X GET。
对于 DocDB
,唯一有效的 Content-Type
是 application/json
。如果请求意外的 Content-Type
,则会发出 HTTP
响应代码 = 406
。
要使用 REST API
,必须启用 %Service_DocDB
服务。为此,请导航至系统管理 > 安全 > 服务,选择 %Service_DocDB
,然后选中 %Service_DocDB
复选框。
管理数据库
GetAllDatabases
:返回一个JSON
数组,其中包含命名空间中所有数据库的名称。
curl -i -X GET -H "Content-Type: application/json" http://localhost:57774/api/docdb/v1/namespaceName
DropAllDatabases
:删除命名空间中当前用户具有写入权限的所有数据库。
curl -i -X DELETE -H "Content-Type: application/json" http://localhost:57774/api/docdb/v1/namespaceName
CreateDatabase
:在命名空间中创建数据库。
curl -i -X POST -H "Content-Type: application/json"
http://localhost:57774/api/docdb/v1/namespaceName/db/databaseName ?type= documentType& resource= databaseResource
GetDatabase
:返回命名空间中数据库的数据库定义。
curl -i -X GET -H "Content-Type: application/json"
http://localhost:57774/api/docdb/v1/namespaceName/db/databaseName
DropDatabase
:从命名空间中删除数据库。
curl -i -X DELETE -H "Content-Type: application/json"
http://localhost:57774/api/docdb/v1/namespaceName/db/databaseName
管理属性
CreateProperty
:创建新属性或替换指定数据库中的现有属性。该属性由URL
参数而不是内容定义。所有参数都是可选的。
curl -i -X POST -H "Content-Type: application/json"
http://localhost:57774/api/docdb/v1/namespaceName/prop/databaseName/
propertyName?type= propertyType& path= propertyPath& unique=propertyUnique
以下示例在 Wx
数据库中创建 City
属性:
http://localhost:57774/api/docdb/v1/mysamples/prop/wx/city?type=%String&path=query.results.channel.location.city&0
GetProperty
:从指定数据库返回属性定义。
curl -i -X GET -H "Content-Type: application/json"
http://localhost:57774/api/docdb/v1/namespaceName/prop/databaseName/propertyName
返回的属性定义是一个 JSON
结构,如下所示:
{"content":{"Name":"city","Type":"%Library.String"}}
DropProperty
:从指定数据库中删除属性定义。
curl -i -X DELETE -H "Content-Type: application/json"
http://localhost:57774/api/docdb/v1/namespaceName/prop/databaseName/propertyName
以下是 JSON
属性定义:
{"content":{"Name":"mydocdb","Class":"DB.MyDocDb","properties":[Array[5]
0: {"Name":%%OTD,"Type":"%RawString"},
1: {"Name":%Concurrency,"Type":"%RawString"},
2: {"Name":%Doc,"Type":"%Library.DynamicAbstractObject"},
3: {"Name":%DocumentId,"Type":"%Library.Integer"},
4: {"Name":%LastModified,"Type":"%Library.UTC"}
]}}