はじめに
本記事では、Spring
で提供されているResponseEntity
を使用したレスポンス作成方法について記述します。
主にHTTPステータス200系(成功)と、400・500系(エラー)の取り扱い方法です。
(個人的によく使うものだけです。悪しからず)
ResponseEntityとは
ResponseEntity
は、その名の通り、レスポンスを表現するためのクラスです。
以下、ドキュメントから抜粋です。
HttpStatus ステータスコードを追加する HttpEntity の拡張。RestTemplate および @Controller メソッドで使用されます。
それでは以下、各HTTPステータスごとの書き方を列挙していきます。
なお、コードはKotlin
で書きますが、Java
とそう大きく変わりませんので、Java
使いの方も理解は難しくないかと思います。
共通の例
はじめに、ResponseEntity
にHTTPステータスを設定する方法を書いてしまいます。
ResponseEntity.status(200).build
はい、上記のように、status(XXX)
の部分を変えてしまえば、期待するHTTPステータスを持ったResponseEntity
を作成することができます。
以降で紹介するのは上記コードを実現するためにあらかじめ用意されているメソッド群の紹介となります。
200系(成功)
200 OK
fun sample200(): ResponseEntity<Void> {
return ResponseEntity.ok().build()
}
fun sample200Body(): ResponseEntity<String> {
return ResponseEntity.ok("Hello, World!")
}
201 Created
fun sample201(): ResponseEntity<Void> {
val uri = URI.create("created/uri")
return ResponseEntity.created(uri).build()
}
202 Accepted
fun sample202(): ResponseEntity<Void> {
return ResponseEntity.accepted().build()
}
204 No Content
fun sample204(): ResponseEntity<Void> {
return ResponseEntity.noContent().build()
}
400 Bad Request
fun sample400(): ResponseEntity<Void> {
return ResponseEntity.badRequest().build()
}
401 Unauthorized
fun sample401(): ResponseEntity<Void> {
return ResponseEntity.status(HttpStatus.UNAUTHORIZED).build()
}
403 Forbidden
fun sample403(): ResponseEntity<Void> {
return ResponseEntity.status(HttpStatus.FORBIDDEN).build()
}
fun sample404(): ResponseEntity<Void> {
return ResponseEntity.notFound().build()
}
fun sample500(): ResponseEntity<Void> {
return ResponseEntity.internalServerError().build()
}
終わりに
以上、よく使うであろうHTTPステータスごとのResponseEntity
オブジェクトの生成方法でした。
ResponseEntity
は内部的にBuilder
パターンによるオブジェクト生成を行っているため、HTTPステータス以外にもヘッダーなどを設定するに便利なメソッドが多数用意されています。
それらもいずれ紹介できればと思います。