Spring Bootでstatus codeを指定して返す

執筆日: 更新日:
この記事の目次
chevron_right 処理中に返す

Controller全体でStatusCodeを決める

@ResponseStatusアノテーションを利用します。
返却したいステータスコードはHttpStatusが持っているのでそれを利用します。

    import org.springframework.http.HttpStatus;
    import org.springframework.web.bind.annotation.ResponseStatus;

    @PostMapping("")
    @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
    public void index() {
        // 処理
    }

処理中に返す

ServerHttpResponseを利用します。

    import org.springframework.http.HttpStatus;
    import org.springframework.http.server.ServerHttpResponse;

    @PostMapping("")
    public void index(ServerHttpResponse response) {
        if (何らかのエラーチェック) {
            // エラーのとき
            // return時(処理の終了時)に暗黙的にresponseがreturnされるっぽいので、ステータスコードをsetするだけでOK
            response.setStatusCode(HttpStatus.INTERNAL_SERVER_ERROR);
            return;
        }

        // 何事もないとき
    }
[PR] おすすめの本
この記事を書いた人
Nな人(えぬなひと)。
Nは本名から取っています。
Laravelが大好きなPHPerで、WEBを作るときはLaravelを技術スタックに絶対推すマン。
PHP、Pythonと、昔はperlを書いていたP言語エンジニア。
最近はNimを書いたりしています。