It's all there in the spray-routing docs but I can understand it's hard to put stuff together. There's quite some open sources spray-routing apps on github and examples on SO that might help you get a hang of how to combine stuff.
Here's a quick sketch, uncompiled and untested, of what your code should look like:
pathPrefix("garages" / JavaUUID / "cars" / JavaUUID) { (garageId, carId) =>
path("repairjob") & post {
entity(as[RepairJob]) { job =>
// should initiate a new repair job
}
} ~
pathEndOrSingleSlash & get {
// should get me the repair history for this car
} ~
path("repairJobs" / JavaUUID) { rpjId =>
patch {
entity(as[RepairJobUpdate]) { update =>
// should just update that one field in the repair job
}
} ~
get {
// should get me the complete repair details
}
}
}