Вывод для пользовательского метода PUT SCIM при обновлении составного атрибута

У меня есть пользователь в хранилище пользователей 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"
  }
}

Я отправляю запрос на размещение на этот ресурс со следующим телом метода.

{
  "schemas":["urn:scim:schemas:core:1.0"],
  "userName":"bjensen123",
  "name":{
    "formatted":"Ms. Bb",
  }
}

Каким должен быть атрибут имени моего результирующего ресурса?

"name":{
   "formatted":"Ms. Bb",
}

or

"name":{
     "formatted": "Ms. Bb",
    "familyName": "Jensen",
    "givenName": "Barbara"
  }

person Chamila Wijayarathna    schedule 25.05.2015    source источник


Ответы (1)


Запрос PUT должен обрабатываться как полное обновление, в отличие от PATCH, который обновляет только указанные атрибуты и является необязательным для разработчика (в соответствии со спецификацией SCIM 1.1). Назначение PUT состоит в том, что инициатор запроса сначала выполняет чтение (GET) пользователя, изменяет нужные атрибуты и предоставляет всестороннее обновление, чтобы включить те атрибуты, которые на самом деле не меняются (пароль является единственным исключением). Любые атрибуты, которые не указаны со значениями в запросе PUT, будут удалены. Таким образом, согласно вашему примеру, ответ PUT вернется как:

"имя":{"отформатировано":"мисс Бб"}

Если вы не хотите потерять familyName и GivenName, вам также необходимо повторно указать их (вместе с любыми другими атрибутами, которые вы не хотите сбрасывать со счетов). Вот определение спецификации: http://www.simplecloud.info/specs/draft-scim-api-01.html

person cody    schedule 26.05.2015