File tree Expand file tree Collapse file tree 2 files changed +20
-3
lines changed
src/main/scala/com/techmonad/rest Expand file tree Collapse file tree 2 files changed +20
-3
lines changed Original file line number Diff line number Diff line change 8
8
// get all persons
9
9
$ curl -XGET 'localhost:8000/person/getAll'
10
10
output => [{"name":"Bob","email":"[email protected] ","age":32}]
11
+
12
+ //get person by name
13
+ $ curl -XGET 'localhost:8000/person/getByName?name=bob'
14
+ output => [{"name":"Bob","email":"[email protected] ","age":32}]
15
+
11
16
12
17
// save person
13
18
$ curl -XPOST 'localhost:8000/person/save' -d'{"name":"Joy","email":"[email protected] ","age":30}'
Original file line number Diff line number Diff line change @@ -29,14 +29,24 @@ object RestService {
29
29
path(" person" / " getAll" ) {
30
30
get {
31
31
complete {
32
- val persons = FakePersonDB .getAll()
33
- write(persons)
32
+ val persons : List [ Person ] = FakePersonDB .getAll()
33
+ write(persons) // person list convert json and return as response
34
34
}
35
35
}
36
36
} ~
37
+ path(" person" / " getByName" ) {
38
+ get {
39
+ parameters(' name .as[String ]) { name => // URL parameter
40
+ complete {
41
+ val persons : List [Person ] = FakePersonDB .getByName(name)
42
+ write(persons) // person list convert json and return as response
43
+ }
44
+ }
45
+ }
46
+ } ~
37
47
path(" person" / " save" ) {
38
48
post {
39
- entity(as[String ]) {
49
+ entity(as[String ]) { // post body parameter
40
50
personJson =>
41
51
complete {
42
52
val person = parse(personJson).extract[Person ]
@@ -67,6 +77,8 @@ object FakePersonDB {
67
77
68
78
def getAll (): List [Person ] = persons
69
79
80
+ def getByName (name : String ): List [Person ] = persons.filter(_.name.toLowerCase == name)
81
+
70
82
def save (person : Person ): Unit = {
71
83
persons = persons :+ person
72
84
}
You can’t perform that action at this time.
0 commit comments