更新时间:2024-12-12 GMT+08:00
分享

修改微服务契约

功能介绍

根据schema_id更新微服务的契约内容。

接口约束

服务中心老版本如果微服务环境定为production,不支持契约覆盖;从版本2.3.33开始,支持使用环境变量SCHEMA_EDITABLE支持契约覆盖。

URI

PUT /v4/{project_id}/registry/microservices/{service_id}/schemas/{schema_id}

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

请填固定值:default。

service_id

String

微服务唯一标识。字符长度为1~64,正则表达式为^.*$。获取方法请参考查询所有微服务信息

schema_id

String

微服务契约唯一标识。字符长度为1~160,正则表达式为^[a-zA-Z0-9]{1,160}$|^[a-zA-Z0-9][a-zA-Z0-9_-.]{0,158}[a-zA-Z0-9]$。获取方法请参考查询微服务的所有契约

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

Authorization

String

若ServiceComb引擎专享版开启了安全认证,此参数必填。否则,无此参数。

开启了安全认证的ServiceComb引擎专享版Token,格式为:

Authorization:Bearer {Token}

Token获取方法,请参考获取ServiceComb引擎专享版用户Token

表3 请求Body参数

参数

是否必选

参数类型

描述

schema

String

契约内容。

summary

String

新加入参数,后面创建schema,请尽量提供schema的摘要。

响应参数

状态码: 400

表4 响应Body参数

参数

参数类型

描述

errorCode

String

错误代码。

errorMessage

String

错误信息。

detail

String

详细定位信息。

状态码: 500

表5 响应Body参数

参数

参数类型

描述

errorCode

String

错误代码。

errorMessage

String

错误信息。

detail

String

详细定位信息。

请求示例

修改指定service_id和schema_id的契约的契约内容和摘要。

PUT https://{endpoint}/v4/{project_id}/registry/microservices/{service_id}/schemas/{schema_id}

{
  "schema": "---\nswagger: \"2.0\"\ninfo:\n  version: \"1.0.0\"\n  title: \"swagger definition for com.service.provider.controller.ProviderImpl\"\n  x-java-interface: \"cse.gen.springmvc.provider.provider.ProviderImplIntf\"\nbasePath:  \"/provider\"\nconsumes:\n- \"application/json\"\nproduces:\n- \"application/json\"\npaths:\n  /helloworld:\n    get:\n      operationId: \"helloworld\"\n      produces:\n      - \"application/json\"\n      parameters:\n      - name: \"name\"\n        in: \"query\"\n        required: true\n        type: \"string\"\n      responses:\n        200:\n          description: \"response of 200\"\n          schema:\n            type: \"string\"\n",
  "summary": "test"
}

响应示例

状态码

状态码

描述

200

修改成功。

400

错误的请求。

500

服务内部错误。

错误码

请参见ServiceComb错误码

相关文档