Skip to content

Commit 125fbc4

Browse files
committed
Added URL query param example
1 parent 9b03404 commit 125fbc4

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@
88
// get all persons
99
$ curl -XGET 'localhost:8000/person/getAll'
1010
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+
1116
1217
// save person
1318
$ curl -XPOST 'localhost:8000/person/save' -d'{"name":"Joy","email":"[email protected]","age":30}'

src/main/scala/com/techmonad/rest/RestService.scala

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,24 @@ object RestService {
2929
path("person" / "getAll") {
3030
get {
3131
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
3434
}
3535
}
3636
} ~
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+
} ~
3747
path("person" / "save") {
3848
post {
39-
entity(as[String]) {
49+
entity(as[String]) { // post body parameter
4050
personJson =>
4151
complete {
4252
val person = parse(personJson).extract[Person]
@@ -67,6 +77,8 @@ object FakePersonDB {
6777

6878
def getAll(): List[Person] = persons
6979

80+
def getByName(name: String): List[Person] = persons.filter(_.name.toLowerCase == name)
81+
7082
def save(person: Person): Unit = {
7183
persons = persons :+ person
7284
}

0 commit comments

Comments
 (0)