1

データを投稿するRESTサービスがあります。投稿データでhttpフォーム要素を使用してデータを投稿するのが良いですか、それともすべてのデータを1つのjson文字列に投稿してから、サーバー側で文字列を解析するのが良いですか。どちらか一方に行く理由はありますか?

前もって感謝します。私は、アーキテクチャ上、これが最良の方法でコーディングされていることを確認しようとしています。ありがとう

4

3 に答える 3

0

それはあなたのデータに依存すると思います。データが非常にフラットで、キーと単純な値が1対1で対応している場合は、フォームスタイルの送信がおそらく最も適切です。より複雑なネストされたデータまたはある種の配列がある場合は、jsonアプローチを使用します。どちらのオプションも多かれ少なかれRESTfulだとは思いません。

于 2012-10-05T13:30:31.967 に答える
0

RESTful アーキテクチャにより近いため、最初のソリューションを使用する必要があると思います。さらに、このソリューションは標準であるため、POST パラメーターをエンコード/デコードするために特別なことを行う必要はありません。

于 2012-10-05T13:22:39.107 に答える
0

フォーム要素が最適です。投稿で json を使用する場合は、その構造をクライアントに伝える必要があります。これは通常、帯域外で行われます (帯域内で行われるのを見たことはありませんが、間違っている可能性があります)。これにより、クライアントとサーバーの間の結合が作成されます。

フォームを使用する場合、インバンド フォームは、投稿データがどうあるべきかをクライアントに伝えます。データ要件が変更されると、フォームが変更され、クライアントはそれに応じて (おそらく) 調整できます。

たとえば、メディア タイプで次の名詞を定義emailしたとします。後で、アカウントの作成時にユーザーに自分の名前を提供するように決定したので、フォームを更新して、 、、およびが必要になるようにします。passwordfirst-namelast-namedate-of-birthemailpasswordemailpasswordfirst-namelast-name. クライアントはすでにこれらの名詞に精通している (そして、それぞれに属するデータを知っている) ため、適切に記述されたクライアントは更新された形式と互換性があります。投稿されているのが json データだけの場合、必要な json データが変更されたことを認識できないため、クライアントは機能しません (メディア タイプを変更しない限り、いずれにせよそれらを壊すことになります)。

現在、このアプローチは、メディア タイプで定義されている名詞に対してのみ機能します。新しい名詞を追加する場合は、それをオプションにすることしかできません (既存のクライアントは引き続き機能し、新しいクライアントは新しい名詞を利用できます)。または、必須にする必要がある場合は、新しい名詞を作成する必要があります。新しい (または更新された) クライアントのみが使用できるメディア タイプ。

于 2012-10-07T14:47:47.213 に答える