JAX-RS サービス、Axios クライアント、および複数値の POST パラメータ?
POST
パラメータを受け取る操作を行っております JAX-RS サービスがありますSet<String>
パラメータには@FormParam
サービス定義で釈が付けられます。 OpenApi を使用してサービスを文書化し、それを使用して、経由で Axios を使用して Typescript クライアントを生成しましたopenapi-generator
クライアント API の意思決定がサービス側 API と同様に一致していることがわかります。
(生成されたクライアントごとに)として渡されたPOST
2つの値を使用するして実行します。ただし、サーバー側では、値がString
Array
シングル String
それはカンマ区切りです。 JAX-RSによって分割されず、Set<String>
これは今後期待されるものとして扱われます。Set<String>
が、値が 1 つだけ含まれています。
Set
Java値の場合にも同様の動作が見られますEnum
その場合、はSet
完全にnullになります。enum
解析値のや変換は全く行われません。
何かが足りないのでお願いしますか? 複数の値を持つ可能性があります HTML フォームがないを処理する別の方法はありますか?
編集:テスト少しデータを収集するために、単純な JAX-RS を作成してClient
同じエンドポイントを呼び出し、ContainerRequestFilter
サービスに追加して、本体に渡される質問を確認できます。クライアントと電話をかけると、次のような懸念を含む本文が明確に表示されます。
[arrayParam=String1&arrayParam=String2&arrayParam=String3]
Set<String>
この形式を使用すると、サービスに問題はありませんパラメータを取得できます。ただし、Axios クライアントを使用して呼び出すと、次のような懸念を含む本文が表示されます。
[arrayParam=String1%2CString2%2CString3]
","
したがって、Axios クライアントが String 値を別々のパラメータ値にする分解のではなく、String 値が存在します。挿入していることは明らかです。私の質問は、Axios クライアントでこの動作を適切な方法でオーバーライドできるかということです。それを防ぐなら、JAX-RS サービスでそれを補うきれいな方法はありますか?
- 本文标签: 家庭宠物
- 本文链接: https://www.coder6.net/article/2447
- 版权声明: 本文由蚂蚁原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权