2016-06-15 11 views
1

SOAP RPCインターフェイスで作業していたので、RESTfulなデザインパターンに合うように物事にアプローチする方法に苦しんでいます。RESTfulな検証方法

たとえば、 3ページの新規顧客の登録ウィザードがある場合。他のもののため

名/ DOB のための最初のページには、住所 ため、2ページ目、3ページ目 顧客が登録

新規顧客のポストから実行される完了し、そこから最後の概要ページ最終的な要約ページは明らかですが、各ページに入力されたデータの検証を実行することをどのようにお勧めしますか。

ページ1のデータは顧客リソースではなく、一部のサーバー側のビジネスルール(DOBや一意のユーザー名など)に対する検証が必要な部分的な顧客リソースです。 。

妥当性検査の失敗の結果は、代替のユーザー名を提供している可能性があります。したがって、200/400ステータスコードの応答だけでなく、

RPCの設計は、ValidatePage1メソッドの呼び出しです。

しかし、これはデータ項目の「検証」アクションを考えており、リソースとアクションの結果から考えようとしています。

APIがREST型とRPC型の呼び出しを持つのが悪い設計ですか、あるいは実際にアクションでありリソースの投稿/取得などではない検証 'アクション'を扱うときにこのアプローチが有効な時があります。ValidateDOB、ValidateAge 、ValidateAddressなど

+0

htmlドキュメントのグラフとして視覚化するのが簡単な場合は、RESTに適しています。 – VoiceOfUnreason

答えて

1

たとえば、 3ページの新規顧客の登録ウィザードがある場合。他のもののため

アドレスの名前/ DOBのための最初のページ、2ページ目は、3ページ目、あなたがHTML、プロトコルとしてこれを行うとしたら、顧客が登録

を完了したところから、最後の概要ページおそらくこのようなものに見えるでしょう - ブックマークを使ってリソースを見つけると空白のフォームが表示されます。

あなたはフォームに記入して提出します。ブラウザはフォーム上のコントロールを調べて、フォームのターゲットリソースを発見し、フォームデータの表現を構成し、その表現をサーバーにディスパッチします。サーバーはあなたの入力を検証し、(a)図示されているエラーを伴うアプリケーション状態の表現、または(b)有効なフィールドがロックされたアプリケーション状態の表現と、次のページを収集するための新しい形式データ。この新しい表現のハイパーリンクは、前のフォームと同じ場所に移動するか、別の場所に移動する可能性があります。

ある時点で、データの完全性と有効性を示すフォームの表示が行われ、これらのフォームをもう記入する必要のない新しいアプリケーション状態になります。

これを行うと、RESTを取得できます。

ステータスコードはどうですか?さて、フォームが送信されるたびに、リソースは新しいアプリケーション状態の表現で応答しているので、検証が失敗した場合でも200(OK)で応答するのは完全に適切です。ドゥーオーバーのためのユーザ。

この設計は上全く依存しないことに注意してください、:リソースがリソースかどうかは、あなたのドメインモデル

  • 内のエンティティへのマップを関与かどうか

    、あなたのリソースに使用するどのような識別子
    • をフォームの検証に関与するドメインの状態を変更する