디커플링 유지하면서 데이터를 표현하는 방법에 클라이언트를 암시하는 방법의 우리가 지금처럼 사용자의 개인 정보를 저장하는 가정 해 봅시다 (여기 JSON,하지만 그 시점이 아니다) :REST 서비스 - 단순화하기 위해
{
"name": "John"
"age": 35
"sex": "M"
}
이 정보를 표시하고 새 사용자를 작성하거나 기존 사용자를 업데이트하기 위해 양식을 작성하는 UI 클라이언트가 있어야합니다.
그래서, 내 질문은 :
방법이이 편안한 방식으로 달성 할 수 있는가? REST는 이러한 유형의 상호 작용을 제공합니다. 즉, 제공되는 자원을 표시하는 방법에 대해 고객에게 암시하는 것입니까?우리는 클라이언트에게 리소스를 표현하는 방법에 대해 최대한 자유롭게하고 싶습니다. 또한 백엔드와 프론트 엔드간에 너무 많은 연결을하지 않아도 올바른 데이터를 보내 줄 수 있습니다.
예를 들어, 우리는과 같이 user
에 대한 템플릿을 할 수 :
{
"self": "/template/user"
"method": "GET"
"data": {
"fields": [
{
"name": "name"
"value": {
"data_type": "string"
}
},
{
"name": "age"
"value": {
"data_type": "number"
}
},
{
"name": "sex"
"value": {
"data_type": "string"
"options": [
"M",
"F"
]
}
}
]
}
}
당신이 제공 할 수있을 수있는 입력 주셔서 감사합니다.
샘플에 JSON이 포함되어 있으므로 [json-schema] (http://json-schema.org/)에서 요청의 실제 유효한 입력 또는 예상 필드를 설명 할 수 있습니다. XML 기반 메시지의 경우 XSD (또는 DTD)를 사용하여 클라이언트에게 보낼 것으로 예상되는 내용을 알려줄 수 있습니다. 다른 문서 유형의 경우 클라이언트를 가르치거나 지원하는 방법에 대해 다소 덜 명확 해집니다. 클라이언트는 기본 미디어 유형 (예 :'application/json') 에서처럼 이러한 기능을 지원할 수있는 특별한 미디어 유형을 필요로 할 수 있습니다. 즉,이 스키마를 그대로 사용하지 않을 수도 있습니다. –
이전 주석이 "teach 다시 보내야 할 대상에 대한 클라이언트 "우려와 덜보기 지원에, 내 의견은 내가 추측하는 데 도움이되지 않을 수도 있습니다. API 또는 서버가 클라이언트에게 양식 제시 방법을 암시하는 데 도움이되는 경우 서버에서 클라이언트로 특정 HTML 출력 (양식 포함)을 보내지 않는 이유는 무엇입니까? 클라이언트가 브라우저 (또는 브라우저를 인식하는 구성 요소) 인 경우 폼을 표시하는 것은 응답을 단순하게 렌더링하는 것입니다.클라이언트는 내용 협상 ('text/html')을 통해 도움을 요청하거나 자신의 물건 ('application/json')을 할 수 있습니다. –
대단히 고맙습니다. 왜 @voiceofunreason에 대한 내 의견을 보니 왜 내가 피하려고했는지 보았습니다. HTML을 보냈습니다. – Johnny