
# 更新DID
#### 功能介绍
更新DID文档中发布的服务。
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=BCS&api=UpdateDIDService)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### URI
PUT /v1/identity/did
#### 请求参数
表1请求Body参数 
| 参数           | 是否必选 | 参数类型                                                                   | 描述                     |
|:---|:---|:---|:---|
| orgID        | 是    | String                                                                 | 组织id                   |
| channelID    | 是    | String                                                                 | 通道id                   |
| cryptoMethod | 是    | String                                                                 | 加密方法，目前固定为SW           |
| cert         | 是    | String                                                                 | 用户证书，每行末尾均需要增加显式换行符\\n |
| sk           | 是    | String                                                                 | 用户私钥，每行末尾均需要增加显式换行符\\n |
| timestamp    | 是    | String                                                                 | 时间戳                    |
| did          | 是    | String                                                                 | 分布式身份标识                |
| service      | 否    | Array of [DIDService] objects | 服务列表                   |
   
 表2DIDService 
| 参数                    | 是否必选 | 参数类型                                                                               | 描述              |
|:---|:---|:---|:---|
| type                  | 是    | String                                                                             | 类型              |
| serviceEndpoint       | 是    | String                                                                             | 接入点             |
| credentialApplySchema | 否    | [CredentialApplySchema] object | 申请凭证所需数据的Schema |
   
 表3CredentialApplySchema 
| 参数          | 是否必选 | 参数类型                                                                 | 描述   |
|:---|:---|:---|:---|
| type        | 否    | String                                                               | 类型   |
| name        | 否    | String                                                               | 名称   |
| description | 否    | String                                                               | 描述信息 |
| attributes  | 否    | Array of [Attribute] objects | 属性列表 |
   
 表4Attribute 
| 参数          | 是否必选 | 参数类型   | 描述   |
|:---|:---|:---|:---|
| name        | 否    | String | 名称   |
| type        | 否    | String | 类型   |
| description | 否    | String | 描述信息 |
   
#### 响应参数
**状态码： 200**
表5响应Body参数 
| 参数             | 参数类型                                                                        | 描述              |
|:---|:---|:---|
| context        | String                                                                      | context         |
| id             | String                                                                      | 分布式身份标识         |
| publicKey      | Array of [DocPublicKey] objects | 公钥列表            |
| authentication | Array of strings                                                            | did主公钥标识        |
| recovery       | String                                                                      | 备用公钥标识，可用于修改主密钥 |
| service        | Array of [Service] objects           | 服务列表            |
| proof          | [Proof] object                         | 证明结构，可为空        |
| created        | String                                                                      | 创建时间            |
| updated        | String                                                                      | 更新时间            |
| status         | String                                                                      | 状态              |
   
 表6DocPublicKey 
| 参数           | 参数类型   | 描述       |
|:---|:---|:---|
| id           | String | 公钥标识     |
| type         | String | 公钥类型     |
| controller   | String | 公钥的控制者标识 |
| publicKeyPem | String | 公钥证书     |
   
 表7Service 
| 参数                    | 参数类型                                                                                | 描述              |
|:---|:---|:---|
| id                    | String                                                                              | 服务标识            |
| type                  | String                                                                              | 服务类型            |
| serviceEndpoint       | String                                                                              | 服务介绍网址          |
| credentialApplySchema | [CredentialApplySchema] object | 申请凭证所需数据的Schema |
   
 表8CredentialApplySchema 
| 参数          | 参数类型                                                                  | 描述   |
|:---|:---|:---|
| type        | String                                                                | 类型   |
| name        | String                                                                | 名称   |
| description | String                                                                | 描述信息 |
| attributes  | Array of [Attribute] objects | 属性列表 |
   
 表9Attribute 
| 参数          | 参数类型   | 描述   |
|:---|:---|:---|
| name        | String | 名称   |
| type        | String | 类型   |
| description | String | 描述信息 |
   
 表10Proof 
| 参数             | 参数类型   | 描述      |
|:---|:---|:---|
| creator        | String | 创建者身份标识 |
| type           | String | 签名类型    |
| created        | String | 签名创建时间  |
| signatureValue | String | 签名值     |
   
**状态码： 500**
表11响应Body参数 
| 参数        | 参数类型   | 描述                           |
|:---|:---|:---|
| errorCode | String | 错误码 最小长度：**8** 最大长度：**36**   |
| errorMsg  | String | 错误描述 最小长度：**2** 最大长度：**512** |
   
#### 请求示例
```
{
  "orgID" : "4f1439758ebb41f7411b5f684b67713c08b89198",
  "channelID" : "mychannel",
  "cryptoMethod" : "SW",
  "cert" : "-----BEGIN CERTIFICATE-----\n...\n...\n-----END CERTIFICATE-----",
  "sk" : "------BEGIN PRIVATE KEY-----\n...\n...\n-----END PRIVATE KEY-----",
  "timestamp" : "2020-10-27T17:28:16+08:00",
  "did" : "did:example:ebfeb1f712ebc6f1c276e12ec21",
  "service" : [ {
    "type" : "VerifiableCredentialService",
    "serviceEndpoint" : "https://example.com/vc/",
    "credentialApplySchema" : {
      "type" : "file",
      "name" : "Test Enterprise Certification",
      "description" : "this is test apply info",
      "attributes" : [ {
        "name" : "bob",
        "type" : "string",
        "description" : "Attribute's description"
      } ]
    }
  } ]
}
```
#### 响应示例
**状态码： 500**
失败响应
```
{
  "errorCode" : "BCS.5002033",
  "errorMsg" : "Service Type and ServiceEndpoint Can not Null"
}
```
#### 状态码
| 状态码 | 描述         |
|:---|:---|
| 200 | 分布式身份文档结构体 |
| 500 | 失败响应       |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/devg-bcs/ErrorCode.html)。
