Spring MVCでPOSTメソッドのRestAPIを作る時に気をつけること

spring

Spring MVCを使って、RestAPIを作る際に気をつけたことを紹介していきます。

今回紹介するのは、POSTメソッドAPIを作る際に気をつけたことです。GETメソッドAPIでは同様のことは気にすることなく作成できました。

もしもSpring MVCで作成したPOSTメソッドAPIをAjaxから使用するのであれば、Ajax側も気をつけて実装する必要があります。
このとこについては、コチラの記事を参考にして下さい。

[スポンサーリンク]

このブログでやること

Spring MVCでPOSTメソッドのRestAPIを作る方法を紹介します。

Spring MVCのPOSTメソッドのRestAPI

    @RequestMapping(value = "/url", method = RequestMethod.POST)
    public String post(@RequestParam("message") String message,
                         HttpServletRequest request,
                         HttpServletResponse response,
                         Locale locale, Model model) throws Exception {
        response.addHeader( "Access-Control-Allow-Origin", "*" ); 
        response.addHeader( "Access-Control-Allow-Methods", "POST" );
        // キャッシュを有効にしたい場合は、こちらのコメントアウトを外します。
        //response.addHeader( "Access-Control-Max-Age", "1000" );
        return "response";
    }

解説

Ajaxのクロスドメイン問題を回避するため、6行目と7行目を指定しています。

Ajax側からPOSTメソッドでAPIをコールする際に、私はクロスドメイン問題にぶつかりました。
GETメソッドでは、このような問題にぶつからなかったので、POSTメソッドAPIを作る時は気をつけて下さい。

springMVCのバージョン

org.springframework-versionは、3.1.0を使っています。
javaは、1.8を使っています。

最後に

久しぶりにSpringに関するブログを書きました。
Spring4.0もすでにリリースされていることですので、これからはもう少しSpringのブログを更新できるように頑張ります。。
それでは!