2017-04-10 17 views
0

REST APIでURIパラメータの解析にどのようにアプローチすればよいでしょうか。たとえば:RESTful APIでのURIパラメータの解析

http://api.example.com/item/ [{{ItemID}} [/{{Property}}]] 

次の要求がすべて有効である必要があります。

http://api.example.com/item 
http://api.example.com/item/ 
http://api.example.com/item/1 
http://api.example.com/item/1/ 
http://api.example.com/item/1/description 
http://api.example.com/item/1/description/ 

それらが存在する場合、私は、アイテムIDとプロパティ値を取得できるようにする必要があります。

Apache Commons StringUtilsとsubstringBefore/substringAfterを使用しようとしましたが、すぐに混乱します。そのような仕事のための図書館や、見落とした別の方法がありますか?

+0

Java構文の強調表示を無効にする方法はありますか? – vikarjramun

答えて

0

ような何かを行うことができ、私は間違いなくジャグディープの答え@感謝し、私はJAX-RSを使用しておりませんので、私はそれを使用することができませんでした。いくつかの調査をした後、これを行う図書館がないことが明らかになったので、自分で作成することにしました。それは非常に原油であり、今のところ文書がありません。しかし、私はこれをすぐに更新します。改良を加えて私にプルリクエストを提出することは大歓迎です。

https://github.com/ArjMart/UrlParser

使用法:

UrlParser parser = new Parser(); 
parser.setTemplate("/item/{INT:itemID}/{STRING:itemAttribute}"); 
UrlParametersMap upm = parser.parse(request.getURI()); 
boolean attributeExists = upm.parameterExists("itemAttribute"); 
String attribute = null; 
if(attributeExists){ 
    attribute = upm.getString("itemAttribute"); 
} 

免責事項: 私はその唯一の創作者と貢献者だと私は(当然)UrlParserと提携しています。

+0

FWIWに切り替えます。https://github.com/danisola/restify –

+1

@OscarPerez oh。私はそれを見ていない:)まあそれは競争が私が推測する方法が作成されている... – vikarjramun

+0

確かに!多いほどもっと良いでしょう :) –

1

あなたはJAX-RSを使用している場合、あなたは

@GET 
@Path("/{param1}/{param2}") 
@Produces("text/plain") 

public String get(@PathParam("param1") int param1, @PathParam("param2") int param2) { 

    logger.debug("\n param1 = " + param1 + " .. param2 = " + param2); 
} 
+0

現在、Servlet 3.0 APIを使用していますが、必要に応じて、JAX-RS – vikarjramun

関連する問題