0

Apache Winkを使用して REST パスでオプションの名前付きパラメーターを定義する最良の方法は何ですか?

現在、私は次のようなものを使用しています:

/items{sep: (?)}{id: (.*)}")

次のようなマッチング リクエストの場合:

/items/123
/items/
/items

きれいに撮れるように{id}

別のオプションは次のとおりです。

/items{id: (/?/[^/]+?)}

ただし{id}、文字が含まれている/ため、クリーンアップが必要になります。

私は自分のフレームワーク(µ)Microで Wink を使用していますが、これを使い続ける予定です。他の/より優れた (?) 同様のフレームワークを推奨すると、現時点ではこの質問には答えられません。

ありがとうございました!
-フローリン

4

1 に答える 1

1

これは少し面倒かもしれませんが、これはあなたのものよりも優れたソリューションではないかもしれません (私はあなたの要件を知りません)。私のリソース クラスには '@Path("/db")' という注釈があり、その後、サポートされているディレクトリ レベルごとに連続するメソッドがあります。つまり、REST は必ず '/' 文字をディレクトリ区切り文字として扱う URL に基づいているためです。

@Path("{id}")
@GET
public Response getJson( @PathParam("id") String id )
{  
    String path = id;
    // TODO
}

「db/items」を処理し、

@Path("{id1}/{id2}")
@GET
public Response getJson( 
        @PathParam("id1") String id,
        @PathParam("id2") String id2 )
{
    String path = id1 + '/' + id2;
    // TODO
}

「db/items/123」を処理し、

@Path("{id1}/{id2}/{id3}")
@GET
public Response getJson( 
        @PathParam("id1") String id1, 
        @PathParam("id2") String id2, 
        @PathParam("id3") String id3 )
{ 
    String path = id1 + '/' + id2 + '/' + id3;
    // TODO
}

「db/items/123/456」を扱います。

しかし、これは長いパスではすぐに面倒になることがわかります。また、n 深度のパスを処理する方法をまだ理解していません (誰か? )。それが助けになることを願っています。

于 2013-06-19T12:27:06.360 に答える