1. Catalog Management
使用Servicebroker的第一步,作用是列出broker中所有可用的服务的详细信息,为后续创建服务等请求提供必要参数。
Request
Route
GET /v2/catalog
cURL
$ curl http://username:password@broker-url/v2/catalog
Response
状态码
描述
200 OK
同步请求成功
202 Accept
异步请求成功
Body
字段名
类型
描述
services
service-object-array
service的具体信息列表
Service Object
字段名
类型
描述
name
string
服务类型名,非空
id
string
服务类型id,服务类型的唯一标示符,在创建服务等请求中被使用,非空
description
string
关于该服务的简短描述
bindable
bool
服务是否可绑定到应用,默认为true
plan_updateable
bool
服务规格可更新,默认为true
tags
string-array
服务带有的标记
requires
string-array
服务所依赖的组件
metadata
object
服务带有的元数据
plan
object-array
服务所有的可用资源配额,至少一个plan
dashboard_client
object
用于创建客户端访问服务的入口地址的信息
Dashboard Client Object
字段名
类型
描述
id
string
用于客户端认证,如果需要认证,不可为空
secret
string
用于客户端认证的密码,如果需要认证,不可为空
redirect_uri
string
服务的Dashboard地址,如果需要认证,该参数则需要服务的token才可使用
Plan Object
字段名
类型
描述
id
string
该资源配额的唯一标示符,用于创建服务的请求等,非空
name
string
该资源配额名,非空
description
string
该资源配额的描述
metadata
string
该资源配额的元数据
free
bool
该资源配额是否免费
2. Provisioning
创建服务
Request
Router
PUT /v2/service_instances/:instance_id
:instance_id 不能为空且唯一,这个id还用于绑定与删除等操作
Body
字段名
类型
描述
service_id
string
服务类型的id,来自catalog,代表要创建的服务类型
plan_id
string
服务资源配额id,来自catalog,代表要创建的服务的资源配额
organization_guid
string
组织的id
space_guid
string
组织下空间的id
parameters
object
创建服务所必需的参数
例如
{
"service_id": "service-id-here",
"plan_id": "plan-id-here",
"organization_guid": "org-guid-here",
"space_guid": "space-guid-here",
"parameters": {
"parameter1": 1,
"parameter2": "foo"
}
}
cURL
$ curl http://username:password@broker-url/v2/service_instances/:instance_id?accepts_incomplete=true -d '{
"service_id": "service-id-here",
"plan_id": "plan-id-here",
"organization_guid": "org-guid-here",
"space_guid": "space-guid-here",
"parameters": {
"parameter1": 1,
"parameter2": "foo"
}
}' -X PUT -H "Content-Type: application/json"
Response
状态码
描述
200 OK
同步请求成功
202 Accept
异步请求成功
409 Conflict
存在相同的instance_id的应用
400 Bad Request
请求的Body数据非法
Body
字段名
类型
描述
dashboard_url
string
客户端访问该服务的入口地址
last_operation
object
服务当前的状态信息
例如:
{
"dashboard_url": "http://example.com/uhdiqwndi",
"last_operation": {
"state": "starting",
"description": "creating service instance..."
}
}
3. Polling Last Operation
当Servicebroker在创建,删除,绑定服务时返回了202 Accept,使用该/v2/service_instances/:instance_id/last_operationapi会返回服务当前的状态。
Request
Route
:instance_id不能为空
cURL
$ curl http://username:password@broker-url/v2/service_instances/:instance_id/last_operation
Response
状态码
描述
200 OK
同步请求成功
202 Accept
异步请求成功
410 Gone
不存在这个服务应用
Body
字段名
类型
描述
state
string
返回的值有in progress和succeeded,代表服务当前的状态
description
string
对这个服务当前状态的描述
例如:
{
"state": "in progress",
"description": "Creating service (10% complete)."
}
4. Updating a Service Instance
通过这个API可以修改已经创建的服务的资源配额plan和参数parameters
要实现这个API,必须在Catalog操作中的该服务有plan_updateable: true这个属性
Request
Route
PATCH /v2/service_instances/:instance_id
:instance_id 与创建服务时相同,非空且唯一
Body
字段名
类型
描述
service_id
string
服务类型的id,来自catalog
plan_id
string
服务的资源配额id,来自catalog
parameters
object
服务需要参数,会替换在创建服务时的值
previous_values
object
创建服务时的参数的值
previous_values.plan_id
string
创建服务时的资源配额id
previous_values.service_id
string
创建服务时的服务id
previous_values.organization_id
string
创建服务时的组织id
previous_values.space_id
string
创建服务时的组织的空间id
例如:
{
"service_id": "service-id-here",
"plan_id": "plan-id-here",
"parameters": {
"parameter1": 1,
"parameter2": "foo"
},
"previous_values": {
"plan_id": "old-plan-id-here",
"service_id": "service-id-here",
"organization_id": "org-guid-here",
"space_id": "space-guid-here"
}
}
cURL
$ curl http://username:password@broker-url/v2/service_instances/:instance_id?accepts_incomplete=true -d '{
"context": {
"platform": "cloudfoundry",
"some_field": "some-contextual-data"
},
"service_id": "service-id-here",
"plan_id": "plan-id-here",
"parameters": {
"parameter1": 1,
"parameter2": "foo"
},
"previous_values": {
"plan_id": "old-plan-id-here",
"service_id": "service-id-here",
"organization_id": "org-guid-here",
"space_id": "space-guid-here"
}
}' -X PATCH -H "Content-Type: application/json"
Response
状态码
描述
200 OK
同步请求成功
202 Accept
异步请求成功
400 Bad Request
请求的Body数据非法
Body
字段名
类型
描述
operation
string
返回这次更新的操作名,非空
5. Binding
给该服务绑定额外的功能
如果在catalog中服务的参数bindable为true,则可以执行这个操作。
Credentials
为服务绑定一个新客户端的访问入口,返回包括认证信息,主机名等
Log Drain
为服务绑定一个新的日志管道,使服务的日志可以导入到别的应用中
Broker 如果返回的信息包括了syslog_drain_url,则在Catalog中该服务必须有"requires":["route_forwarding"]存在
Request
Route
PUT /v2/service_instances/:instance_id/service_bindings/:binding_id
:instance_id 与创建服务时的值相同
:binding_id 唯一且非空
Body
字段名
类型
描述
service_id
string
来自catalog,非空
plan_id
string
来自catalog,非空
app_guid
string
被绑定到服务的应用id,非空唯一
bind_resource
object
被绑定到服务的应用
parameters
object
绑定需要的参数
例如:
{
"service_id": "service-id-here",
"plan_id": "plan-id-here",
"app_guid": "app-guid-here",
"bind_resource": {
"app_guid": "app-guid-here"
},
"parameters": {
"parameter1-name-here": 1,
"parameter2-name-here": "parameter2-value-here"
}
}
cURL
$ curl http://username:password@broker-url/v2/service_instances/:instance_id/service_bindings/:binding_id -d '{
"service_id": "service-id-here",
"plan_id": "plan-id-here",
"app_guid": "app-guid-here",
"bind_resource": {
"app_guid": "app-guid-here"
},
"parameters": {
"parameter1-name-here": 1,
"parameter2-name-here": "parameter2-value-here"
}
}' -X PUT -H "Content-Type: application/json"
Response
状态码
描述
200 OK
同步请求成功
202 Accept
异步请求成功
409 Conflict
存在相同的binding_id的应用
400 Bad Request
请求的Body数据非法
Body
字段名
类型
描述
credentials
object
为服务绑定一个新客户端的访问入口,返回包括认证信息,主机名等
syslog_drain_url
string
来自catalog,非空
例如:
{
"credentials": {
"uri": "mysql://mysqluser:pass@mysqlhost:3306/dbname",
"username": "mysqluser",
"password": "pass",
"host": "mysqlhost",
"port": 3306,
"database": "dbname"
}
}
6. Unbinding
解除服务所绑定的额外功能
Request
Route
DELETE /v2/service_instances/:instance_id/service_bindings/:binding_id
:instance_id 与绑定服务时的值相同,唯一且非空
:binding_id 与绑定服务时的值相同,唯一且非空
cURL
$ curl 'http://username:password@broker-url/v2/service_instances/:instance_id/
service_bindings/:binding_id' -X DELETE
Response
状态码
描述
200 OK
同步请求成功
202 Accept
异步请求成功
410 Gone
不存在这个服务或不存在这个绑定操作
7. Deprovisioning
删除服务
Request
Route
DELETE /v2/service_instances/:instance_id
:instance_id与创建服务时的值相同
cURL
curl 'http://username:password@broker-url/v2/service_instances/:instance_id -X DELETE
Response
状态码
描述
200 OK
同步请求成功
202 Accept
异步请求成功
410 Gone
不存在这个服务
Broker Errors
Response
Body
字段名
类型
描述
error
string
错误名
description
string
对错误的描述