2017-07-13 5 views
0

id(例:「api.com/id5」)とニックネーム(「api.com/nick1」)でユーザーを検索する必要がある場合、@RequestMappingを作成する最も良い方法は何ですか?私は同じパターンで問題があり、Springマッピングでは "id1"をニックネームとして定義できます(登録前にニックネームがチェックされているため不可能です)。 REST IDとニックネームでユーザーを取得する

@RequestMapping(value = "/id{id}", method = RequestMethod.GET) 
    public ResponseEntity<Object> getUserById(@PathParam("id") long id){ 
     return ...; 
    } 

    @RequestMapping(value = "/{nickname}", method = RequestMethod.GET) 
    public ResponseEntity getUserByNickname(@PathParam("nickname") String nickname){ 
     return ...; 
    } 

もう一つの解決策:URIのパスから単なる文字列を取得し、手動で確認し、それがIDまたはニックネームである私は、コードは次のようでなければならと思いました。 これは正しい方法ですか?

答えて

2

@PathVariableを使用し、その間にスラッシュを入れると、PathVariableは単独で識別され、一意に識別されます。

@RequestMapping(value = "/id/{id}", method = RequestMethod.GET) 
public ResponseEntity getUserById(@PathVariable("id") long id){ 
    return ...; 
} 

@RequestMapping(value = "/user/{name}", method = RequestMethod.GET) 
public ResponseEntity getUserByNickname(@PathVariable("name") String name){ 
    return ...; 
} 
+0

「api、com/users/id/5」は問題ありませんが、2番目の方法では「api.com/users/user/bublik」とします。悪いアイデア –

関連する問題