Merhaba arkadaşlar, bu yazımda PathParam konusunu anlatacağım.
Mesela örnek olarak bir kişi listemiz olsun. Bu kişi listemizde 2.sıradaki kişinin bilgilerini görmek istiyorum. Bu gibi durumlarda metotlarda parametre olmalı. Bunu PathParam ile çözebiliriz. Şimdi örnek üzerinde konuyu daha iyi anlamaya çalışalım:
Person.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public class Person { private int id; private String name; private String surname; public Person(int id, String name, String surname) { this.id = id; this.name = name; this.surname = surname; } public Person() { } //Getters and Setter |
Person sınıfı bizim pojo sınıfımızdır. Değişkenler ve bu değişkenlere ait getter/setter metotlar mevcuttur.
RestService.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
@Path("/pathparam") public class RestService { static List<Person>personList=new ArrayList<>(); static { Person person1=new Person(); person1.setId(1); person1.setName("Furkan"); person1.setSurname("Koç"); Person person2=new Person(); person2.setId(2); person2.setName("Osman"); person2.setSurname("Korucu"); Person person3=new Person(); person3.setId(3); person3.setName("Emre"); person3.setSurname("Öztürk"); personList.add(person1); personList.add(person2); personList.add(person3); System.out.println(personList); } @GET @Produces(MediaType.APPLICATION_JSON) @Path("/test/{id}") public Person getPersonWithId(@PathParam("id")int id) { System.out.println("İD => "+id); Person responsePerson=new Person(); for (Person person : personList) { if(person.getId()==id) responsePerson=person; } return responsePerson; } @GET @Produces(MediaType.TEXT_PLAIN) @Path("/test/{name}-{surname}") public String getPersonWithNameSurname(@PathParam("name")String name,@PathParam("surname")String surname) { return "Welcome Name:"+name.toUpperCase()+" Surname:"+surname.toUpperCase(); } |
getPersonWithNameSurname() metodu iki adet parametre alıyor. Bu parametreleri @PathParam kullanarak alıyoruz. Şimdi Postman ile test edelim.
URI dan görüldüğü gibi “furkan koc” parametre olarak gönderildi ve response olarak Text döndürüldü. Burada önemli bir kısım @PathParam() notasyonuna verdiğim tanımlama ile URI daki tanımla aynı olmak zorundadır. Yani: /{name} için @PathParam(“name”) olmak zorundadır. Bu yazıda @PathParam kullanarak parametre gönderilmeyi anlamış olduk. Bu yazımı burada bitiriyorum diğer yazılarımda görüşmek üzere…