アドレスが有効かどうかをチェックする関数があります。
最初にURLは次のようになります
/address/validate/{city}/{state}/{zipCode}
しかし後で、アドレスのすべてのパラメーターは 1 つのリソースにすぎないと考えました。だから私はそれを
/address/validate/{city}.{state}.{zipCode}
どちらが良いか分からないのですが、アドバイスをお願いします。
アドレスが有効かどうかをチェックする関数があります。
最初にURLは次のようになります
/address/validate/{city}/{state}/{zipCode}
しかし後で、アドレスのすべてのパラメーターは 1 つのリソースにすぎないと考えました。だから私はそれを
/address/validate/{city}.{state}.{zipCode}
どちらが良いか分からないのですが、アドバイスをお願いします。
この場合、私は/address/validate?city={city}&state={state}&zipcode={zipCode}
なんで?まあ、それは私の意見です。ただし、パス (uris) は表現の一意の識別子と考えてください。これは通常、モデル ドメインの一部です。(おそらく)検証の結果を保存していないため、検証リソースを作成するだけです。
方法として考えてください。パラメータはクエリパラメータです。
したがって、これを行うと、validate の表現 (有効かどうか) が params によって変更されます。
あなたの例で/address/
は、それはリソースとして存在すると思いますが、データモデルに表現があります。したがってPOST
、作成PUT
、GET
変更、取得することができます。
ただし、これが必要な場合/address/validate
は、おそらく検証の結果です。だから私は私の例に行きます。
最初の1つ。Becourseそれは有効なAndroidの解析可能なURIです
どちらも有効な安らかな URL ではないと思います。
あなたの説明は、「アドレスリソースを作成して検証する必要がある」と考えることができます。/address
POSTを介して渡されるデータとして、指定された都市、州、および zipCode を使用して住所リソースを作成するPOST to だけではないのはなぜですか。そのロジックで、リソースを作成できるかどうかを検証します。可能であれば、それを作成し、そのリソースの一意の参照を返します。これは、後続のリクエストで使用されます/address/:id/...
。そうしないと、検証エラーが発生した場合に HTTP エラー コードが返されます400 Bad Request
。
私の意見では、これはおそらくより「安らかな」ものです。
後者の方が良い選択肢だと思います。ユーザーが後でパラメーターのいずれかを検証する場合、およびサポートを追加する場合、サブパスが想定されている順序を気にするよりも、単にパラメーターを除外する方が論理的に思えます。最終的には、の設計に依存します。 API 設計は、一部のドメインでは他のドメインよりも意味があるためです。パラメータの間に & も追加します。