現在、REST APIに新しい機能を追加しようとしています。Java REST APIクエリアノテーション
基本的には、パスの最後にクエリパラメータを追加し、これをすべてのクエリオプションのマップなどに追加する機能を追加します。
は私の現在のコードは私が
localhost:8181/cxf/check/
localhost:8181/cxf/check/format
localhost:8181/cxf/check/a/b
localhost:8181/cxf/check/format/a/b
のようなものを行うことができます。これは、応答を生成するための文字列変数として、すべての@PathParamを使用します。
私が今やりたいことは追加です:
localhost:8181/cxf/check/a/b/?x=abc&y=def&z=ghi&...
localhost:8181/cxf/check/format/a/b/?x=abc&y=def&z=ghi&...
と私は、これは私がいた
x => abc
y => def
z => ghi
... => ...
応答を構築するためにpathparamと一緒に使用することができます地図を生成する必要がありますしかし、@QueryParamは1つのキー値しか扱えず、それらのマップは扱えないようです。
@GET
@Path("/{format}/{part1}/{part2}/{query}")
Response getCheck(@PathParam("format") String format, @PathParam("part1") String part1, @PathParam("part2") String part2, @QueryParam("query") Map<K,V> query);
以下は現在のインターフェイスコードです。
@Produces(MediaType.APPLICATION_JSON)
public interface RestService {
@GET
@Path("/")
Response getCheck();
@GET
@Path("/{format}")
Response getCheck(@PathParam("format") String format);
@GET
@Path("/{part1}/{part2}")
Response getCheck(@PathParam("part1") String part1,@PathParam("part2") String part2);
@GET
@Path("/{format}/{part1}/{part2}")
Response getCheck(@PathParam("format") String format, @PathParam("part1") String part1, @PathParam("part2") String part2);
}
を受け付けることができる場合は、このオプションが役に立つかもしれません)これは@Path( "/ {format}/{part1}/{part2} /")を使用することができますか?それ以外の場合は空にしておかなければなりません。後でUriInfoからパスを抽出しますか? –
'@ PathParam'と' @Context UriInfo'を一緒に使うことができます。私は答えの完全な例を含めた – pedrofb
ありがとう私はできるだけ早くテストしますありがとう! –