Soapui-restful-http-methods

提供:Dev Guides
移動先:案内検索

SoapUI RESTful-HTTPメソッド

最も一般的に使用されるHTTPメソッドは、POST、GET、PUT、PATCH、およびDELETEです。 これらは、それぞれ作成、読み取り、更新、削除(またはCRUD)操作に対応します。 他にも多くの方法がありますが、使用される頻度は少なくなります。 これらのメソッドの中で、OPTIONSとHEADは他のメソッドよりも頻繁に使用されます。

POST

POSTメソッドは、新しいリソースを作成するために使用されます。 下位リソースの作成に使用されます。 つまり、他のものに従属する(例: 親)リソース。

つまり、新しいリソースを作成するとき、親とサービスへのPOSTは、新しいリソースと親の関連付け、ID(新しいリソースURI)などの割り当てを処理します。

正常に作成されたら、HTTPステータス201を返し、201のHTTPステータスで新しく作成されたリソースへのリンクを含むロケーションヘッダーを返します。

POSTは安全でもべき等でもありません。 したがって、非べき等のリソース要求には推奨されます。

2つの同一のPOST要求を行うと、2つのリソースに同じ情報が含まれます。 場合によっては、定義されたサービスのタイプに基づいてエラーメッセージをスローします。

GET

HTTP GETメソッドは、リソースの表現の読み取りまたは取得に使用されます。 正常な応答では、GETはXMLまたはJSONの表現と200(OK)のHTTP応答コードを返します。 エラーの場合、ほとんどの場合、404(NOT FOUND)または400(BAD REQUEST)を返します。

HTTP仕様の設計によれば、GET(およびHEAD)要求は、データを読み取るためだけに使用され、変更することはありません。 したがって、GETは安全と見なされます。

GETは、データの変更や破損のリスクなしに呼び出すことができます。一度呼び出すと、10回呼び出すのと同じ効果があります。 さらに、GETはi等です。つまり、複数の同一の要求を行うと、単一の要求と同じ結果が得られます。

GETを使用して安全でない操作を公開しないことをお勧めします。サーバー上のリソースを変更しないでください。

PUT

PUTは、既存のリソースを更新するために使用されます。 PUTは、元のリソースの更新された表現を含む要求本文とともに、既知のリソースURIとして使用されます。

PUTを使用して、サーバーではなくクライアントがリソースIDを選択するリソースを作成することもできます。 言い換えれば、PUTが存在しないリソースIDの値を含むURIとして使用される場合です。

POSTは、新しいリソースを作成し、本文でクライアント定義のIDを提供するために使用されます。 更新が成功すると、PUTから200(またはボディのコンテンツを返さない場合は204)を返します。

PUTが作成に使用される場合、作成に成功するとHTTPステータス201を返します。 応答の本文はオプションです。

PUTは、サーバー上の状態を変更(または作成)するため、安全な操作ではありませんが、i等です。 ユーザーがPUTを使用してリソースを作成または更新し、同じ呼び出しを再度行った場合、リソースはまだ存在し、最初の呼び出しと同じ状態になります。

PUTリクエストをべき等に保つことをお勧めします。 べき等でない要求にはPOSTを使用することを強くお勧めします。

パッチ

PATCHは機能を変更するために使用されます。 PATCH要求には、リソースへの変更のみを含める必要があり、完全なリソースは含めません。 PUTに似ていますが、本文には、現在サーバー上にあるリソースをどのように変更して新しいバージョンを作成するかを説明する一連の指示が含まれています。

つまり、PATCH本体はリソースの変更された部分であるだけでなく、JSONパッチやXMLパッチなどの何らかの種類のパッチ言語である必要があります。

PATCHは安全でもべき等でもありません。 PATCH要求は、べき等になるように発行することができます。これは、同じリソース上の同じリソースに対する2つのPATCH要求間の衝突による悪い結果を防ぐのにも役立ちます。

複数のPATCH要求からの衝突は、一部のパッチ形式が既知のベースポイントから動作する必要があるため、PUT衝突よりも危険な場合があります。そうしないと、リソースが破損します。

この種のパッチ適用を使用するクライアントは、クライアントが最後にリソースにアクセスしてからリソースが更新された場合に要求が失敗するように、条件付き要求を使用する必要があります。

DELETE

DELETEは、URIで識別されるリソースを削除するために使用されます。 削除が成功すると、HTTPステータス200(OK)と、削除されたアイテムの表現である応答本文が返されます。 それ以外の場合、HTTPステータス204(NO CONTENT)を返しますが、応答本文はありません。

つまり、本文のない204ステータス、またはJSENDスタイルの応答とHTTPステータス200が推奨される応答です。

HTTPの仕様上、DELETE操作はべき等です。 ユーザーがリソースを削除すると、削除されます。 同じリソースでDELETEを繰り返し呼び出すと、結果は同じになります:リソースはなくなります。

リソース上でDELETEを2回呼び出すと、多くの場合404(NOT FOUND)が返されます。これは、既に削除されており、検索できないためです。 これにより、DELETE操作はi等ではなくなりますが、リソースの最終状態は同じです。 404を返すことは許容でき、コールのステータスと正確に通信します。