2017-09-26 18 views
0

Spring Bootを使用してWeb APIを開発しています。 APIの1つにxmlファイルといくつかの追加パラメータを使用してPOSTリクエストを処理します。 xmlだけの場合は、content-typeをapplication/xmlに設定することができます。それが単なるパラメータであれば、タイプapplication/x-www-form-urlencodedparam1=value1&param2=value2を行うことができます。しかし、同時に両方のタイプを1つのエンドポイントで扱うにはどうすればよいですか?クエリパラメータとxmlファイルの両方で投稿要求を処理する方法

+0

これが必要なのかどうかは不明ですが、エンドポイントのクエリ部分にパラメータを設定するか、multipartコンテンツタイプを使用するか、たとえばhttps://stackoverflow.com/questions/を参照してください。 9081079/rest-http-post-multipart-with-jsonです。しかし、私はデザインの変更が考慮されるべきだと感じています。 –

+0

@FrantišekŽiačikどのように私はデザインを変更することをお勧めしますか? paramsは、リクエストを送信しているデバイスからのものです(例:電話のMACアドレス。ファイルはモバイルアプリから生成されます。私は両方を組み合わせるのが簡単だとは思わない。 – ddd

+0

ユースケースによって異なります。あなたのケースでは、それはちょうどxmlのコンテンツタイプを使用し、URLにparamsを入れるだけで十分であるようです。それは正常に動作するはずです。 –

答えて

0

はい、1つのエンドポイントを処理できます。メソッドに正しいコンテンツタイプを指定するだけです。

sprint-bootというタグが付けられているので、私はSpring MVCを使用していると仮定しますか?はいの場合は、RequestMappingに適切なconsumesを指定します。

+0

"application/xml"としてコンテンツタイプを指定すると、クエリパラメータを無視するでしょうか? – ddd

+0

いいえ。リクエストは、コンテンツタイプにかかわらずurlのクエリパラメータを持つことができます。 'application/x-www-form-urlencoded'を使うと、基本的に身体にクエリーパラメータがあることを意味し、url上にクエリーパラメータを持つこともできます。 – Tarlog

関連する問題