を切り離す維持しながら、データを表現する方法上のクライアントを暗示する方法、我々はそうのようにユーザーの個人情報を格納しているとしましょう(ここではJSONが、それはポイントではありません):RESTサービスは、 - 簡単にするため
{
"name": "John"
"age": 35
"sex": "M"
}
これらの情報を表示したり、新しいユーザーを作成したり、既存のユーザーを更新したりするために、フォームを作成するUIクライアントが必要です。
だから、私の質問は:
これは、RESTfulな方法で実現することができますか? 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"
]
}
}
]
}
}
は、あなたが提供することができるかもしれない任意の入力いただき、ありがとうございます。これは、RESTfulな方法で達成することができますどのように
サンプルにJSONが含まれているので、実際の有効な入力または期待されるフィールドを記述するために[json-schema](http://json-schema.org/)をご覧ください。 XMLベースのメッセージの場合、XSD(またはDTD)を使用して、クライアントに送信する予定の内容を教えることができます。他のドキュメントタイプでは、クライアントを教える方法やサポートする方法がはっきりしません。クライアントは、デフォルトのメディアタイプ(つまり、アプリケーション/ json)でこれらの機能をサポートできる特別なメディアタイプが必要な場合があります。 –
私の以前のコメントは、 "teachクライアントが何を返すべきか」と心配し、ビューのサポートを少なくすると、私のコメントは私が推測するほどあなたを助けなかったかもしれません。 APIまたはサーバーがクライアントにフォームの提示方法をヒントする際に役立つ場合、特定のHTML出力(フォームを含む)をサーバーからクライアントに送信してみませんか?クライアントがブラウザ(またはブラウザ対応コンポーネント)である場合、フォームを提示することは応答の単なるレンダリングに過ぎません。クライアントはコンテンツネゴシエーション( 'text/html')を介してヘルプをリクエストすることも、独自のもの(' application/json')を行うこともできます –
ありがとう、@voiceofunreasonに対する私のコメントを参照してください。 HTMLを送信します。 – Johnny