Spring kullanrak Rest service ile getUser (userId ile alıyorum) ve getByUserName diye iki methodum var ve userl leri ise
api/user/{id}
api/user/{userName}
şeklinde, ancak ikisini seçmekte kararsız kalıyor sanırım. Bunu nasıl çözerim.
@RequestMapping(value = "/user/{userName}", method = RequestMethod.GET)
public ResponseEntity<?> getUserByUserName(@PathVariable("userName") String userName) {
.............
@RequestMapping(value = "/user/{id}", method = RequestMethod.GET)
public ResponseEntity<?> getUser(@PathVariable("id") long id) {
.............
alınan hata ise;
Error: Ambiguous handler methods mapped for HTTP path in spring...
önerilen bir çözüm şu şekilde
https://stackoverflow.com/questions/35155916/handling-ambiguous-handler-methods-mapped-in-rest-application-with-spring
Ambigious kelimesi belirsizlik/muğlaklık demek. Kafadan bu hatayı aldığın zaman (yer önemsiz), şunu düşünmen lazım; kesin aynı işi yapan iki farklı kod/sınıf/vb bileşen var ve uygulama hangisini seçeceğini anlayamıyor. Senin durumunda /user/ kısmının arkasına bir değişken getiriyorsun, iki path için de GET metod uyguluyorsun. Değişkenlerin ismi farklı bile olsa bunu uygulaman ayırt edemez. Bunları bir şekilde birbirinden ayırt etmen lazım. En basiti HTTP metod değiştirebilirsin. Birini GET diğerini POST/PUT/DELETE yapabilirsin.
Ya da farklı isimle path belirleyebilirsin.
İyi çalışmalar,