Javaの@RequestMappingのメソッド属性の詳細説明

Java の @RequestMapping のメソッド属性

Java の Spring フレームワークでは、@RequestMapping アノテーションを使用して HTTP リクエストの処理メソッドを定義することがよくあります。このうち、method 属性はこのアノテーションでよく使われる属性であり、サポートされている HTTP リクエストメソッドを指定するために使用されます。一般的に使用されるメソッドの属性値と対応する HTTP リクエスト メソッドは次のとおりです。

  • RequestMethod.GET: リソースを取得するために使用され、通常はクエリ操作に使用されます。
  • RequestMethod.POST: 新しいリソースの作成に使用され、通常は新しい操作に使用されます。
  • RequestMethod.PUT: リソースの更新に使用され、通常は操作の変更に使用されます。
  • RequestMethod.DELETE: リソースを削除するために使用されます (通常は削除操作に使用されます)。

Method 属性が指定されていない場合、@RequestMapping はデフォルトですべてのタイプの HTTP リクエスト メソッドをサポートします。Method 属性を使用すると、メソッドが特定の HTTP リクエスト メソッドのみを受信するように制限できます。これにより、インターフェイスのセキュリティが向上するだけでなく、クライアントがサポートされていない HTTP リクエスト メソッドにアクセスすることがなくなり、誤った操作の可能性が減ります。

通常、RESTful API は HTTP プロトコルに基づいて通信し、HTTP リクエスト メソッドを使用してさまざまな操作タイプを表現し、リソースの追加、削除、変更、クエリ、つまり CRUD を実現します。たとえば、ユーザー リソースを例に挙げると、次の方法で RESTful API を定義できます。

  • GET /users: すべてのユーザーをクエリします。
  • GET /users/{id}: ID に従って指定されたユーザーをクエリします。
  • POST /users: 新しいユーザーを作成します。
  • PUT /users/{id}: 指定されたユーザーを更新します。
  • DELETE /users/{id}: 指定したユーザーを削除します。

このように、クライアントは、固定の HTTP メソッドに従って対応する API インターフェイスにアクセスするだけで、リソースの CRUD 操作を実現できます。同時に、固定の HTTP リクエスト メソッドを使用することで、一部の不正な操作を回避することもできます。たとえば、ユーザーを更新するために /users/{id} インターフェイスに POST リクエストを送信しようとしても成功しません。これは、このインターフェイスはユーザーを更新するための PUT リクエストのみをサポートしているためです。

つまり、メソッド属性は Spring の @RequestMapping アノテーションの重要な属性であり、HTTP リクエスト メソッドを指定するために使用され、指定された HTTP リクエスト メソッドのみを受信するようにインターフェイスを制限できます。RESTful APIインターフェースを定義する際、リソースの追加、削除、変更、クエリに応じて、対応するHTTPリクエストメソッドを使用してリソースのCRUD操作を実現します。

おすすめ

転載: blog.csdn.net/weixin_46310452/article/details/130877484