创建微服务静态信息
功能介绍
在注册微服务实例前需要创建服务静态信息,之后注册的微服务实例根据serviceId这个字段与静态信息关联,一个服务对应对多个实例。
serviceId可以定制。如果定制了,系统将使用定制的serviceId;如果没有定制,系统会随机生成serviceId。
接口约束
无
URI
POST /v4/{project_id}/registry/microservices
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
|
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
Authorization |
否 |
String |
若微服务引擎专享版开启了安全认证,此参数必填。否则,无此参数。 开启了安全认证的微服务引擎专享版Token,格式为: Authorization:Bearer {Token} Token获取方法,请参考获取微服务引擎专享版用户Token。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
service |
是 |
MicroService object |
微服务信息。 |
rules |
否 |
Array of Rule objects |
黑白名单信息。 |
instances |
否 |
Array of MicroServiceInstance objects |
实例信息。 |
tags |
否 |
Object |
微服务扩展属性,可以自定义KEY和相应的Value。长度最小1字节。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
serviceId |
否 |
String |
微服务唯一标识。字符长度为1~64。正则表达式为^.*$。 |
environment |
否 |
String |
用于区分微服务环境,取值为development、testing、acceptance、production。当配置为development、testing或acceptance时,可以通过批量上传schemas接口新增或者修改已存在的Schema;当配置为production时,则不可以新增或者修改Schema。默认值development。 |
appId |
否 |
String |
应用App唯一标识。字符长度为1~160。 正则表达式为^[a-zA-Z0-9]$|^[a-zA-Z0-9][a-zA-Z0-9_-.][a-zA-Z0-9]$。 |
serviceName |
是 |
String |
微服务名称,同一个App要保证唯一。字符长度为1~128。 正则表达式为^[a-zA-Z0-9]$|^[a-zA-Z0-9][a-zA-Z0-9_-.][a-zA-Z0-9]$。 |
version |
否 |
String |
微服务版本号。字符长度为1~64。 正则表达式为^[0-9]$|^[0-9]+(.[0-9]+)$。 |
description |
否 |
String |
微服务描述信息。字符长度不超过256。 |
level |
否 |
String |
微服务层级:FRONT、MIDDLE、BACK。 |
registerBy |
否 |
String |
微服务注册方式:SDK、PLATFORM、SIDECAR、UNKNOWN。 |
schemas |
否 |
Array of strings |
微服务访问契约内容的外键ID,数组长度最大100个契约。 |
status |
否 |
String |
微服务状态,UP表示上线,DOWN表示下线,默认值UP。 |
timestamp |
否 |
String |
微服务注册时间。 |
modTimestamp |
否 |
String |
最后修改UTC时间。 |
framework |
否 |
Framework object |
开发框架信息。 |
paths |
否 |
Array of ServicePath objects |
服务路由信息。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
Path |
否 |
String |
路由地址。 |
Property |
否 |
Object |
微服务扩展属性,可以自定义KEY和相应的Value。长度最小1字节。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
ruleId |
否 |
String |
自定义ruleId。 |
ruleType |
否 |
String |
rule类型:WHITE或者BLACK。 |
attribute |
否 |
String |
如果是tag_xxx开头,则按Tag过滤attribute属性,否则,则按"serviceId", "AppId", "ServiceName", "Version", "Description", "Level", "Status"过滤。 |
pattern |
否 |
String |
匹配规则,正则表达式,长度1到64。 |
description |
否 |
String |
rule描述。 |
timestamp |
否 |
String |
只有获取rule时返回使用,创建rule的时间。 |
modTimestamp |
否 |
String |
更新时间。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
instanceId |
否 |
String |
实例id,唯一标识。创建实例,instanceId由service-center产生。 |
serviceId |
否 |
String |
微服务唯一标识。创建实例时,以url里面的为准,不用这里的serviceId。 |
version |
否 |
String |
微服务版本号。 |
hostName |
是 |
String |
主机信息。 |
endpoints |
是 |
Array of strings |
访问地址信息。 |
status |
否 |
String |
实例状态:UP、DOWN、STARTING、OUTOFSERVICE,默认值UP。 |
properties |
否 |
Object |
微服务扩展属性,可以自定义KEY和相应的Value。长度最小1字节。 |
healthCheck |
否 |
HealthCheck object |
健康检查信息。 |
dataCenterInfo |
否 |
DataCenterInfo object |
数据中心信息。 |
timestamp |
否 |
String |
实例创建时间戳,自动生成。 |
modTimestamp |
否 |
String |
更新时间。 |
响应参数
状态码: 200
参数 |
参数类型 |
描述 |
---|---|---|
serviceId |
String |
微服务唯一标识。 |
状态码: 400
参数 |
参数类型 |
描述 |
---|---|---|
errorCode |
String |
错误代码。 |
errorMessage |
String |
错误信息。 |
detail |
String |
详细定位信息。 |
状态码: 500
参数 |
参数类型 |
描述 |
---|---|---|
errorCode |
String |
错误代码。 |
errorMessage |
String |
错误信息。 |
detail |
String |
详细定位信息。 |
请求示例
创建一个微服务的静态信息,其微服务名为test,微服务版本为1.0.0,rule的类型为白名单,实例的主机信息为instanceTest,访问地址为rest:127.0.0.1:8080。
POST https://{endpoint}/v4/{project_id}/registry/microservices { "service": { "appId": "default", "serviceName": "test", "version": "1.0.0", "description": "this is a test" }, "rules": [{ "ruleType": "WHITE", "attribute": "tag_123", "pattern": "aaa" }], "instances": [{ "hostName": "instanceTest", "endpoints": ["rest:127.0.0.1:8080"] }], "tags": { "test_tag1": "test_tag1", "test_tag2": "test_tag2", "test_tag3": "test_tag3" } }
响应示例
状态码: 200
创建成功。serviceId为该微服务生成的ID。后续的操作都是针对该微服务ID进行操作。
{ "serviceId" : "8aed80ea052ac04a64dfc79c24f2170224d074f5" }
状态码
状态码 |
描述 |
---|---|
200 |
创建成功。 |
400 |
错误的请求。 |
500 |
服务内部错误。 |
错误码
请参见ServiceComb错误码。