Create a data contract
POST
/v1/projects/{projectId}/data-contractscurl -X POST 'https://api.embodiflow.io/v1/projects/{projectId}/data-contracts' \
-H 'Authorization: Bearer $EMBODIFLOW_PAT' \
-H 'Content-Type: application/json' \
-d '{
"name": "string",
"slug": "string",
"description": "string",
"specJson": {
"contractVersion": "embodiflow-data-contract/v1",
"description": "string",
"metadataEnvelope": {
"requiredFields": [
"string"
],
"fieldTypes": {},
"allowExtraFields": true
},
"canonicalSchema": {
"requiredFields": [
"string"
],
"fieldTypes": {},
"allowExtraFields": true
},
"topics": [
{
"name": "string",
"required": true,
"messageType": "string"
}
],
"features": [
{
"name": "string",
"required": true,
"dtype": "string"
}
],
"blocking": true
},
"blocking": true,
"publish": true
}'认证
每个请求都需要携带个人访问令牌(PAT)。
- Authorization: Bearer PAT
路径参数
- projectIdstring必填
请求头参数
- Idempotency-Keystring
Optional idempotency key, at most 255 characters (UUIDv4 recommended). A repeated key returns the first response byte-for-byte, including a 5xx. The same key with a different body, or a second in-flight request, returns 409 IDEMPOTENCY_CONFLICT. Keys are unique per tenant and retained for 24 hours.
请求体
Content-Typeapplication/json
- namestring必填
- slugstring
- descriptionstring | null
- specJsonobject必填
- contractVersionstring必填
- descriptionstring | null
- metadataEnvelopeobject | null
- canonicalSchemaobject | null
- topicsarray<object> | null
- featuresarray<object> | null
- blockingboolean
- blockingboolean
- publishboolean
响应
Success
- dataobject必填
- idstring必填
- tenantIdstring必填
- projectIdstring必填
- namestring必填
- slugstring必填
- statusstring必填可选值activearchived
- descriptionstring | null必填
- latestPublishedRevisionnumber | null必填
- createdAtstring必填
- updatedAtstring必填
- revisionobject必填
- idstring必填
- tenantIdstring必填
- projectIdstring必填
- contractIdstring必填
- revisionnumber必填
- statusstring必填可选值draftpublishedarchived
- specJsonobject必填
- blockingone of必填
- publishedAtstring | null必填
- archivedAtstring | null必填
- createdAtstring必填
响应示例
{
"data": {
"id": "string",
"tenantId": "string",
"projectId": "string",
"name": "string",
"slug": "string",
"status": "active",
"description": "string",
"latestPublishedRevision": 0,
"createdAt": "string",
"updatedAt": "string"
},
"revision": {
"id": "string",
"tenantId": "string",
"projectId": "string",
"contractId": "string",
"revision": 0,
"status": "draft",
"specJson": {
"contractVersion": "string",
"description": "string",
"metadataEnvelope": {
"requiredFields": [
"string"
],
"fieldTypes": {},
"allowExtraFields": false
},
"canonicalSchema": {
"requiredFields": [
"string"
],
"fieldTypes": {},
"allowExtraFields": false
},
"topics": [
{
"name": "string",
"required": false,
"messageType": "string"
}
],
"features": [
{
"name": "string",
"required": false,
"dtype": "string"
}
],
"blocking": false
},
"blocking": false,
"publishedAt": "string",
"archivedAt": "string",
"createdAt": "string"
}
}服务器https://api.embodiflow.io/v1https://api.embodiflow.dev/v1