Spring REST Controllers
@RestController、@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、ResponseEntity を使った REST API
1@RestController と @Controller の主な違いは何ですか?
@RestController と @Controller の主な違いは何ですか?
回答
@RestController は @Controller と @ResponseBody を組み合わせた複合アノテーションです。これは、@RestController のすべてのメソッドがビューを解決する代わりに、シリアライズされたデータ (JSON/XML) を自動的に返すことを意味します。@RestController は REST API の作成に最適であり、@Controller は HTML ビューを使う従来型の Web アプリケーションに使用されます。
2REST メソッドにおける @RequestBody アノテーションの役割は何ですか?
REST メソッドにおける @RequestBody アノテーションの役割は何ですか?
回答
@RequestBody は、HTTP リクエストボディ (通常は JSON または XML) を Java オブジェクトにデシリアライズするよう Spring に指示します。Spring は HttpMessageConverter (JSON の場合は Jackson など) を使って、この変換を自動的に行います。これは POST や PUT リクエストで複雑なデータを受け取るために不可欠です。
3HTTP DELETE リクエストをマッピングするにはどのアノテーションを使用しますか?
HTTP DELETE リクエストをマッピングするにはどのアノテーションを使用しますか?
回答
@DeleteMapping は、HTTP DELETE リクエストを簡潔にマッピングするために Spring 4.3 で導入された専用のアノテーションです。@RequestMapping(method = RequestMethod.DELETE) のショートカットです。Spring は各 HTTP メソッドに対して同様のアノテーションを提供しています:@GetMapping、@PostMapping、@PutMapping、@PatchMapping。
Spring REST で URL からパス変数を抽出するにはどうすればよいですか?
オブジェクトを直接返す代わりに ResponseEntity<T> を使用する利点は何ですか?
+17 面接問題