我在mu用户商店中有一个具有以下属性的用户。
{
"id": "bfae138c-9f57-4ff1-ab63-599f2034371f",
"schemas":[
"urn:scim:schemas:core:1.0"
],
"name":{
"formatted": "Ms. Barbara J Jensen III",
"familyName": "Jensen",
"givenName": "Barbara"
},
"userName": "bjensen123",
"externalId": "bjensen",
"meta":{
"lastModified": "2015-05-25T08:59:28",
"location": "https://localhost:9443/wso2/scim/Users/bfae138c-9f57-4ff1-ab63-599f2034371f",
"created": "2015-05-25T08:59:28"
}
}
我使用以下方法体向此资源发送了一个put请求。
{
"schemas":["urn:scim:schemas:core:1.0"],
"userName":"bjensen123",
"name":{
"formatted":"Ms. Bb",
}
}
我的结果资源的名称属性应该是什么?
"name":{
"formatted":"Ms. Bb",
}
或
"name":{
"formatted": "Ms. Bb",
"familyName": "Jensen",
"givenName": "Barbara"
}
答案 0 :(得分:1)
PUT请求将作为完整更新处理,而PATCH只会更新指定的属性,并且对于实现者来说是可选的(根据SCIM 1.1规范)。 PUT的目的是请求者首先执行用户的读取(GET),更改所需的属性,并提供全面的更新,以包括那些实际上没有更改的属性(密码是一个例外)。任何未在PUT请求中使用值指定的属性都会被吹走。因此,根据您的示例,PUT响应将返回:
“name”:{“格式化”:“Bb女士”}
如果您不想丢失familyName和givenName,则必须重新指定它们(以及您不想要吹走的任何其他属性)。这是规范定义: http://www.simplecloud.info/specs/draft-scim-api-01.html