私はjHipsterで残りのapi webserviceを開発していますが、facebook graph api(例:http://myjhipster_web_service.com/api/user?fields=id,username)のようなフィールドフィルタを作っています。 問題は私がjackson Jsonのシリアル化を行う方法を知らないので、 ResponseBodyAdviceと私の自己、 のデータをシリアル化し、パフォーマンスの問題については、私は応答がシリアル化されないようにジャクソンのシリアル化を無効にしたいと考えています。 私の質問はJhipsterでジャクソン応答のシリアル化だけを無効にする方法ですか?作業を行うもう1つのソリューションはありますか?JHipster Spring json serializationを無効にするにはどうすればよいですか?
0
A
答えて
0
まずアイデア
あなたはRESTコントローラにリクエスト(選択したフィールド)と結果(ユーザー/ s)をラップすることができ、例えばGraphResponse
のような特定のクラスです。
RESTコントローラのマッピングがGraphResponse
を返した場合、Jacksonはそれをシリアル化しようとします。
public class GraphResponseSerializer extends JsonSerializer<GraphResponse> {
@Override
public void serialize(GraphResponse response, JsonGenerator jsonGenerator,
SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
// use jsonGenerator to write the JSON-stuff
}
}あなたが好きなアノテーションを使用しJacksonConfiguration
かを経由してそのシリアライザを登録することができますいずれか
:
だから、あなたはそのクラスのために独自のseriablizerを追加することができます
@JsonSerialize(using = GraphResponseSerializer.class)
public class GraphResponse {
// setter getter for "fields"
// setter getter for the actual response-object
}
第2の考え
豆/エンティティのシリアル化方法を変更するには、独自の(AFAIR)を追加します。
サードアイデア
あなたは、変換をオブジェクトへのhttp-出力およびHTTP-入力にオブジェクトを処理する、HttpMessageConverter
自分自身を追加することができます。ジャクソンは、私たちがGraphQL(http://graphql.org/)を使用し、いくつかのプロジェクトで
第四アイデア
... MappingJackson2HttpMessageConverter
が自動的に登録されているので、あなたが代わりにMappingJackson2HttpMessageConverter
をオーバーライドして、直列化の変わり目に何かを実装することができ、実行されているのでここではグラフクエリを使用できます。これは本当に強力で、エンティティに基づいてすべてのフィルタリングなどを行います。 GraphQLのためのスプリングブートスターターもありますので、これをjhipsterプロジェクトに簡単に追加できます
関連する問題
- 1. Play Framework - Json Serializationのいくつかのフィールドを無視するにはどうすればよいですか?
- 2. org.apache.catalina.core.ApplicationContext logを無効にするにはどうすればよいですか?
- 3. jqgridローカルキャッシュを無効にするにはどうすればよいですか?
- 4. Spring + JDBCで自動コミットを無効にするにはどうすればよいですか?
- 5. Springブートで "NioEndPoint"ログインを無効にするにはどうすればよいですか?
- 6. 開発目的でSpringクラウドストリームバインディングを無効にするにはどうすればよいですか?
- 7. springブート+クラウドでrefreshScopeヘルスインジケータを無効にするにはどうすればよいですか?
- 8. Firefox Developer Editionで新しいJSON Viewer/Readerを無効にするにはどうすればよいですか?
- 9. Crawler4Jロガーを無効にするにはどうすればよいですか?
- 10. iPadサポートを無効にするにはどうすればよいですか?
- 11. Ctrl + F4を無効にするにはどうすればよいですか?
- 12. WM6.5.3ジェスチャーを無効にするにはどうすればよいですか?
- 13. ピボットフリックイベントを無効にするにはどうすればよいですか?
- 14. invalidate()を無効にするにはどうすればよいですか?
- 15. Djangoクエリキャッシュを無効にするにはどうすればよいですか?
- 16. クエリキャッシュを無効にするにはどうすればよいですか?
- 17. TextBlockを無効にするにはどうすればよいですか?
- 18. "dijit.form.FilteringSelect"ウィジェットを無効にするにはどうすればよいですか?
- 19. should.jsを無効にするにはどうすればよいですか?
- 20. ASP:Panelを無効にするにはどうすればよいですか?
- 21. tomcatを無効にするにはどうすればよいですか?
- 22. LinkLabel TabStopを無効にするにはどうすればよいですか?
- 23. scrollViewを無効にするにはどうすればよいですか?
- 24. ランキットを無効にするにはどうすればよいですか?
- 25. GestureListenerを無効にするにはどうすればよいですか?
- 26. pyqt4 QGraphicsView.mousePressEventを無効にするにはどうすればよいですか?
- 27. ドッカースワームモードを無効にするにはどうすればよいですか?
- 28. Android:デスクトップを無効にするにはどうすればよいですか?
- 29. Yiiエラーページを無効にするにはどうすればよいですか?
- 30. クリックボタンを無効にするにはどうすればよいですか?