0

私は RESTful Web サービスを初めて使用するので、助けが必要です。製品のリストを返すサービスがあります。URL は次のようになります。

/example/product/6666,6667?expand=sellers&storeIds=2,1

このサービスを定義するために、次のインターフェイスがあります。

@Path("/example")
public interface Service {
    @GET
    @Path("/products/{pIds}")
    @Produces( "application/json" )
    public ServiceResponse<ProductsList> getProducts(
        @PathParam("pIds") String productsIds,
        @QueryParam("expand") String expand,
        @QueryParam("storeIds") String storeIds) throws Exception;
}

ここでは、 を文字列として取得してproductsIdsおり、この文字列を手動で ID のリストに分割し、区切り文字をコンマとして使用する必要があると想定しています。

私の側から手動で行う代わりに、パラメーターをリストとして取得する方法はありますか? または、自動化された方法でこれを行うために使用できるライブラリはありますか?

ありがとう

4

1 に答える 1

0

サービス定義に若干の変更を加えることで、製品IDを直接リストに逆シリアル化できます。代わりにこれを試してください:

@Path("/example")
public interface Service {
    @GET
    @Path("/products/{pIds}")
    @Produces( "application/json" )
    public ServiceResponse<ProductsList> getProducts(
        @PathParam("pIds") List<String> productsIds,
        @QueryParam("expand") String expand,
        @QueryParam("storeIds") String storeIds) throws Exception;
}

に変更String productsIdsList<String> productsIdsます。

ちなみに、クエリパラメータとして製品IDを渡すことをお勧めします。URIは一意のリソース(この場合は製品)を識別し、ステートレスである必要があります。

于 2013-01-28T20:23:31.273 に答える