Google ProtoBuf
形式のリクエストを処理するSpring Boot
を使用してAPIサービスを作成しました。私の要求は、application-json format
のように受け入れヘッダで私のサービスにアクセスするたびにです。proto-buf-java Format
(protoオブジェクトとの間でJSON
文字列を変換するライブラリ)を使用して、レンダリングされたprotoオブジェクトをJSON
形式に変換します。ユーザーがapplication/x-protobuf
フォーマットにヒットするたびに、springはprotobufHTTPMessageConverter
を必要なフォーマットに変換しますが、ユーザーがJsonフォーマットにヒットしたときには、デフォルトのJacksonMapper
を使用し、JsonString
に変換できませんでした。私はSpring Boot
を新しくしました。私はJSON
フォーマットにも対応するメッセージコンバータを構成するソリューションが必要です。メッセージを必要な形式に変換するには、SpringブートでhttpMessageConvertersをどのように設定する必要がありますか?
1
A
答えて
0
以下のクラスを追加してください。 AutoBanをオンにしていると仮定して、SpringBootはそれをスキャンする必要があります。 APIのリクエストでは、デフォルトでJSONにシリアル化されたオブジェクトが返されるか、& mediaType = jsonを追加してリクエストしてください。
@EnableWebMvc
@Configuration
public class CustomConfig extends WebMvcConfigurerAdapter
{
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters)
{
MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
mappingJackson2HttpMessageConverter.setPrettyPrint(true);
mappingJackson2HttpMessageConverter.getObjectMapper().setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
converters.add(mappingJackson2HttpMessageConverter);
}
@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer)
{
configurer.defaultContentType(MediaType.APPLICATION_JSON);
configurer.favorPathExtension(false);
configurer.favorParameter(true);
configurer.ignoreAcceptHeader(true);
configurer.useJaf(false);
configurer.parameterName("mediaType");
configurer.mediaType("json", MediaType.APPLICATION_JSON);
}
}
関連する問題
- 1. vbaで一般的な形式からテキスト形式に変換する必要があります
- 2. VAGRANT_CWDをどのように設定する必要がありますか?
- 3. SQLクエリでプレースホルダ値を必要な形式に変換する
- 4. 私はASCII文字列に変換する必要がある文字列を、どのように変換する必要がありますか?
- 5. 10進数の形式にする必要があります。
- 6. Spring JMSリスナーは、ペイロードが空のメッセージをどのように処理する必要がありますか?
- 7. 日付形式(YYYYMMDD)の形式を変更する必要があります
- 8. NSCoderバイナリファイル形式にはどのようなファイル拡張子を適用する必要がありますか?
- 9. アクセス権の変更にはどのようにRealm URLを設定する必要がありますか?
- 10. どのような値を設定する必要があります: "最小限必要なSDK"、 "ターゲットSDK"& "コンパイル"
- 11. バイトコードをマシンコードに変換する必要がありますか?
- 12. OAuth2.0暗号化の前に、リフレッシュトークンのコンテンツ形式はどのようにする必要がありますか?
- 13. Spring Cacheでは、どのようにキャッシュとキーを設計する必要がありますか?
- 14. .cafを.wav形式に変換するためのパラメータが必要ですか?
- 15. データをDockerにアップロードするには、データを特定の形式にする必要がありますか?
- 16. Springブート - Hibernateを手動で設定するときに除外が必要なのはなぜですか?
- 17. どのような形式でProject.ImportDirectory(...)に引数を渡す必要がありますか?
- 18. カスタムの設定からどのようにアクセス権を要求する必要がありますか?
- 19. プロファイリングにはどのコンパイルオプションを設定する必要がありますか?
- 20. spring security.xmlの設定中にエラーが発生するルート要素に続く文書のマークアップが整形式である必要があります
- 21. LIBSVMフォーマットに変換する必要がありますか?
- 22. すべてのAndroid SDKが必要ですか、どのようにインストールする必要がありますか?
- 23. SpringのデフォルトHAL形式をJSON APIに変換するか、Ember DataがHAL json形式を受け入れる必要があります
- 24. WinFormをWebFormに変換する必要があります
- 25. SQLをLINQに変換する必要があります
- 26. これをC++に変換する必要があります
- 27. EMFをjpegに変換する必要があります。
- 28. repaint()にframe.setResizable(false)を設定する必要があります
- 29. SQLプロファイラ2008にはどのようなイベントを設定する必要がありますか?
- 30. spring jdbcでデータソースをプロトタイプスコープにする必要があります
https://github.com/making/spring-mvc-tutorial-protobufなどの基本的なチュートリアルを再現しようとしましたか?あなたが立ち往生している場合、いくつかのコード、ランタイムエラーメッセージを提供してください... –
ありがとう、私はpom.xmlのProtobuf Javaフォーマットの依存関係を追加するのを忘れました。このライブラリを管理している人はいますか?http://mvnrepository.com/artifact/com.googlecode.protobuf-java-format/protobuf-java-format/1.2。このライブラリはprotosをJsonに変換するのに使いやすいですか? – Manu
このライブラリの所有者の名前とメールは、リンクしたページの下部に表示されます。 –