
# 查询服务providers - QueryAllProvidersOfMicroservice
#### 功能介绍
根据consumer_id获取该服务的所有providers，比如A-\>B、A-\>C。那么根据A的服务ID，可以查询到B、C的微服务信息。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-cse/cse_06_0081.html)。
- 如果使用身份策略授权，当前API调用无需身份策略权限。
 
#### URI
GET /v4/{project_id}/registry/microservices/{consumer_id}/providers
表1路径参数 
| 参数          | 是否必选 | 参数类型   | 描述             |
|:---|:---|:---|:---|
| project_id  | 是    | String | 请填固定值：default。 |
| consumer_id | 是    | String | 消费者的服务ID。      |
   
表2Query参数 
| 参数         | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| noSelf     | 否    | Integer | 是否取消返回自依赖的关系。 **取值范围：** - 0：表示不返回自依赖关系。  - 1：表示返回自依赖关系。      |
| sameDomain | 否    | Integer | 是否取消返回共享服务的关系。 **取值范围：** - 0：表示不返回共享服务。  - 1：表示返回。   |
   
#### 请求参数
表3请求Header参数 
| 参数              | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|:---|
| Authorization   | 否    | String | 若ServiceComb引擎专享版开启了安全认证，此参数必填。否则，无此参数。 开启了安全认证的ServiceComb引擎专享版Token，格式为： ``` Authorization:Bearer {Token} ``` Token获取方法，请参考[获取ServiceComb引擎专享版用户Token](https://support.huaweicloud.com/api-cse/cse_06_0035.html)。       |
| X-Authorization | 否    | String | 若ServiceComb引擎专享版开启了安全认证，此参数必填。否则，无此参数。 开启了安全认证的ServiceComb引擎专享版Token，格式为： ``` X-Authorization:Bearer {Token} ``` Token获取方法，请参考[获取ServiceComb引擎专享版用户Token](https://support.huaweicloud.com/api-cse/cse_06_0035.html)。 |
   
#### 响应参数
**状态码： 200**
表4响应Body参数 
| 参数        | 参数类型                                                                                    | 描述     |
|:---|:---|:---|
| providers | [MicroService] object | 微服务信息。 |
   
 表5MicroService 
| 参数           | 参数类型                                                                                            | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|
| 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                                                                                | 微服务访问的契约内容。支持数字、字母，支持使用括号内字符（_-.）做连接符，长度1-160字节，数组长度最大100个契约。                                                                                                                                                                                                                                                                                                                                                                                |
| status       | String                                                                                          | 微服务状态。 **取值范围：** - UP：表示微服务上线状态。  - DOWN：表示微服务下线状态。   **默认取值：** UP                                                                                              |
| timestamp    | String                                                                                          | 微服务注册时间。                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| modTimestamp | String                                                                                          | 最后修改UTC时间。                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| framework    | [Framework] object               | 开发框架信息。                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| paths        | Array of [ServicePath] objects | 服务路由信息。                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| properties   | Object                                                                                          | 扩展属性。可以自定义KEY和相应的Value。                                                                                                                                                                                                                                                                                                                                                                                                                      |
   
 表6Framework 
| 参数      | 参数类型   | 描述                   |
|:---|:---|:---|
| name    | String | 微服务开发框架，默认值为UNKNOWN。 |
| version | String | 微服务开发框架版本号。          |
   
 表7ServicePath 
| 参数       | 参数类型   | 描述                                 |
|:---|:---|:---|
| Path     | String | 路由地址。                              |
| Property | Object | 微服务扩展属性，可以自定义KEY和相应的Value。长度最小1字节。 |
   
**状态码： 400**
表8响应Body参数 
| 参数           | 参数类型   | 描述      |
|:---|:---|:---|
| errorCode    | String | 错误代码。   |
| errorMessage | String | 错误信息。   |
| detail       | String | 详细定位信息。 |
   
**状态码： 500**
表9响应Body参数 
| 参数           | 参数类型   | 描述      |
|:---|:---|:---|
| errorCode    | String | 错误代码。   |
| errorMessage | String | 错误信息。   |
| detail       | String | 详细定位信息。 |
   
#### 请求示例
查询指定服务ID为consumer_id的消费者服务的providers信息。
```
GET https://{endpoint}/v4/{project_id}/registry/microservices/{consumer_id}/providers
```
#### 响应示例
**状态码： 200**
查询成功，则返回serviceId或者schemaId。
```
{
    "providers": [
        {
            "serviceId": "8aed80ea052ac04a64dfc79c24f2170224d074f5",
            "appId": "default",
            "serviceName": "test",
            "version": "1.0.0",
            "description": "this is a test",
            "level": "BACK",
            "status": "UP",
            "properties": {
                "test": "test"
            },
            "timestamp": "1650543950",
            "modTimestamp": "1650544411"
        }
    ]
}
```
#### 状态码
| 状态码 | 描述      |
|:---|:---|
| 200 | 查询成功。   |
| 400 | 错误的请求。  |
| 500 | 服务内部错误。 |
   
#### 错误码
请参见[ServiceComb错误码](https://support.huaweicloud.com/api-cse/cse_06_0110.html)。
