2

Spring MVC を使用して開発された RESTful Web サービスがあり、構成なしで、@ResponseBodyJSON にシリアル化される注釈付きコントローラー メソッドからオブジェクトを返すことができます。これは、リクエストの Accept ヘッダーが設定されていないか、設定されているとすぐに機能しapplication/jsonます。

GitHub API 仕様に触発されたので、 GitHubのように API にカスタム MIME タイプを実装したいと思いましたapplication/vnd.myservice+json。しかし、Spring MVC に、コントローラーがこの MIME タイプを提供できること、および Json (つまり、org.springframework.web.servlet.view.json.MappingJacksonJsonView クラス) によってシリアル化する必要があることを伝える必要があります。

それを行う方法はありますか?

4

1 に答える 1

2

おそらく、で行われていることを正確に行うことができますorg.springframework.http.converter.json.MappingJacksonHttpMessageConverter。これは最終クラスではないため、次の方法でこのクラスからコンバーターを派生させることができます。

class MyCustomVndConverter extends MappingJacksonHttpMessageConverter{
    public MyCustomVndConverter (){
        super(MediaType.valueOf("application/vnd.myservice+json"));
    }
}

次に、コンバータを次のように登録します。

<mvc:annotation-driven> 
   <mvc:message-converters register-defaults="true">
       <bean class="MyCustomVndConverter "/>
   </mvc:message-converters>
</mvc:annotation-driven>

これらの変更で機能するはずです

于 2012-08-19T23:14:24.493 に答える