1 |
package dk.thoerup.webservice;
|
2 |
|
3 |
import java.util.Collection;
|
4 |
import java.util.GregorianCalendar;
|
5 |
import java.util.HashMap;
|
6 |
|
7 |
import javax.validation.constraints.NotNull;
|
8 |
import javax.validation.constraints.Size;
|
9 |
import javax.ws.rs.GET;
|
10 |
import javax.ws.rs.Path;
|
11 |
import javax.ws.rs.PathParam;
|
12 |
import javax.ws.rs.Produces;
|
13 |
import javax.ws.rs.QueryParam;
|
14 |
import javax.ws.rs.core.MediaType;
|
15 |
|
16 |
|
17 |
@Path("/persons")
|
18 |
public class PersonService {
|
19 |
|
20 |
HashMap<Integer,Person> persons = new HashMap<Integer,Person>();
|
21 |
|
22 |
public PersonService() {
|
23 |
persons.put(1, new Person(1, "Anders And", "Paradisæblevej 113", new GregorianCalendar(1956,10,13).getTime() ));
|
24 |
persons.put(2, new Person(2, "Onkel Joakim", "Pengetanken 1", new GregorianCalendar(1966,10,1).getTime() ));
|
25 |
persons.put(3, new Person(3, "Fætter Højben", "Firkløvervej 7", new GregorianCalendar(1967,7,7).getTime() ));
|
26 |
}
|
27 |
|
28 |
|
29 |
/**
|
30 |
* http://localhost:8080/Test4Simple/rest/persons/list
|
31 |
* @return
|
32 |
*/
|
33 |
@Path("/list")
|
34 |
@GET
|
35 |
@Produces(MediaType.APPLICATION_JSON)
|
36 |
public Collection<Person> getList() {
|
37 |
return persons.values();
|
38 |
}
|
39 |
|
40 |
|
41 |
/**
|
42 |
* http://localhost:8080/Test4Simple/rest/persons/get/2
|
43 |
* @return
|
44 |
*/
|
45 |
@Path("/get/{id}")
|
46 |
@GET
|
47 |
@Produces(MediaType.APPLICATION_JSON)
|
48 |
public Person getById(@PathParam("id") int id) {
|
49 |
Person p = persons.get(id);
|
50 |
if (p == null)
|
51 |
throw new PersonNotFoundException();
|
52 |
|
53 |
return p;
|
54 |
}
|
55 |
|
56 |
|
57 |
|
58 |
/**
|
59 |
* http://localhost:8080/Test4Simple/rest/persons/search?q=anders
|
60 |
* @return
|
61 |
*/
|
62 |
@Path("/search")
|
63 |
@GET
|
64 |
@Produces(MediaType.APPLICATION_JSON)
|
65 |
public Person search(
|
66 |
@Size(min=1) @QueryParam("q") String q
|
67 |
) {
|
68 |
q = q.toLowerCase();
|
69 |
|
70 |
for(Person p : persons.values()) {
|
71 |
if (p.getName().toLowerCase().contains(q))
|
72 |
return p;
|
73 |
}
|
74 |
|
75 |
throw new PersonNotFoundException();
|
76 |
}
|
77 |
|
78 |
|
79 |
}
|