2016-08-27 7 views
1

값과 메타 데이터를 업데이트하려는 경우 요청 본문에 속성 유형을 설정하지 않으면 속성 유형을 "none"으로 업데이트하고 정보를 잃게됩니다.

나는 일어날 지 확신 할 수 없다. 이 끝점은 PATCH 요청을 허용하지 않습니다.

예컨대 :

나는 그것의 유형은 '카시 우스'는, 온도라는 특성을 가지고있다. 에서,이 요청되면 원래

curl -X PUT -H "Fiware-Service: teste_1" -H "Content-Type: application/json" -d '{ 
"value": 20, "metadata":{"han":"solo"} 
}' "http://localhost:1026/v2/entities/Room1/attrs/temperature?type=Room" 

: 컬

{ 
"value": 20, 
"metadata":{"han":"solo"} 
} 

표현 :

http://localhost:1026/v2/entities/Room1/attrs/temperature?type=Room

본체 PUT 요청시에 존재하지 않았기 때문에 을 "none"으로 설정했기 때문에 공물 유형이 사라졌습니다. 본문이 none으로 설정되었습니다.

추신 : 나는 텍스트/일반 내용 유형으로 테스트하지 않았습니다.

오리온 컨텍스트 중개인 정보 :

{ 
    "orion" : { 
    "version" : "1.2.0-next", 
    "uptime" : "9 d, 17 h, 27 m, 37 s", 
    "git_hash" : "c1a224db08086751f05d471a8b52c0eaec15f3a5", 
    "compile_time" : "Thu Aug 4 09:04:12 BRT 2016", 
    "compiled_by" : "root" 
} 

}

답변

1

당신이 PUT는 전체 속성을 교체하고 형식이 구현에 의해 "없음"으로 재설정을 수행합니다.

값만 업데이트하면 유형이 유지됩니다.

http://localhost:1026/v2/entities/Room1/attrs/temperature/value

+0

답장을 보내 주셔서 감사합니다. 이보기에 동의하지만 동의하지 않는다는 의미의 속성 유형은 "기본적으로 구현"에 의해 변경되지 않습니다. 개념 모델에서 속성 유형은 최상위 개념의 구조를 나타내며이 속성에 포함 된 데이터의 구조를 설명하는 기본 구성 요소입니다. 불일치를 방지하기 위해 원하는 사실이 올 때 속성 유형 업데이트 (또는 제거)가 액터에 의해 엄격하게 요청되어야합니다. 이 경우 값과 메타 데이터를 업데이트한다고해서 엔티티 유형을 변경하려는 것은 아닙니다. – LeonanCarvalho

+1

오리온은 PATCH 동사를 사용하여 동일한 전화를 받아야합니다. – LeonanCarvalho

+1

예, 동일한 URL에 대해 PATCH 메소드를 추가하면 API의 유연성이 향상됩니다. 그러나 잠시 후에 두 가지 가능한 해결 방법이 있습니다. 1)이 답변에서 @ jose-manuel-cantera로 기술 된 해결 방법, 2) 요청에 "유형"을 추가하십시오. – fgalan