2

アドレスが有効かどうかをチェックする関数があります。

最初にURLは次のようになります

/address/validate/{city}/{state}/{zipCode}

しかし後で、アドレスのすべてのパラメーターは 1 つのリソースにすぎないと考えました。だから私はそれを

/address/validate/{city}.{state}.{zipCode}

どちらが良いか分からないのですが、アドバイスをお願いします。

4

4 に答える 4

4

この場合、私は/address/validate?city={city}&state={state}&zipcode={zipCode}

なんで?まあ、それは私の意見です。ただし、パス (uris) は表現の一意の識別子と考えてください。これは通常、モデル ドメインの一部です。(おそらく)検証の結果を保存していないため、検証リソースを作成するだけです。

方法として考えてください。パラメータはクエリパラメータです。

したがって、これを行うと、validate の表現 (有効かどうか) が params によって変更されます。

あなたの例で/address/は、それはリソースとして存在すると思いますが、データモデルに表現があります。したがってPOST、作成PUTGET変更、取得することができます。

ただし、これが必要な場合/address/validateは、おそらく検証の結果です。だから私は私の例に行きます。

于 2012-09-21T08:00:32.567 に答える
0

最初の1つ。Becourseそれは有効なAndroidの解析可能なURIです

于 2012-09-21T08:00:07.667 に答える
0

どちらも有効な安らかな URL ではないと思います。

あなたの説明は、「アドレスリソースを作成して検証する必要がある」と考えることができます。/addressPOSTを介して渡されるデータとして、指定された都市、州、および zipCode を使用して住所リソースを作成するPOST to だけではないのはなぜですか。そのロジックで、リソースを作成できるかどうかを検証します。可能であれば、それを作成し、そのリソースの一意の参照を返します。これは、後続のリクエストで使用されます/address/:id/...。そうしないと、検証エラーが発生した場合に HTTP エラー コードが返されます400 Bad Request

私の意見では、これはおそらくより「安らかな」ものです。

于 2012-09-21T08:23:44.233 に答える
0

後者の方が良い選択肢だと思います。ユーザーが後でパラメーターのいずれかを検証する場合、およびサポートを追加する場合、サブパスが想定されている順序を気にするよりも、単にパラメーターを除外する方が論理的に思えます。最終的には、の設計に依存します。 API 設計は、一部のドメインでは他のドメインよりも意味があるためです。パラメータの間に & も追加します。

于 2012-09-21T08:02:30.563 に答える