2013-02-07 2 views
1

POST 메서드를 사용하여 스프레이 경로를 통해 users/{id}/permission 경로에 액세스하려고합니다. 웬일인지 (그리고 나는 다른 설정을 시도했다) 경로를 등록하지 않고 405 METHOD NOT ALLOWED을 얻는다.Spray.io 지시문이 등록되지 않았습니까?

아래 코드는 pathPrefix "users"의 일부입니다. GET은 작동하지만 POST는 그렇지 않습니다.

path(Rest/"permission") { id => 
     /** 
     * save permissions object for a user 
     */ 
     post { 
      entity(as[String]) { body => 
       try { 
       val uperm = parse[UserPermission](body) 
       UserPermission.store(uperm) 
       respondWithMediaType(`application/json`) { 
        complete { 
        generate(uperm) 
        } 
       } 
       } catch { 
       case e: com.codahale.jerkson.ParsingException => 
        complete { 
        HttpResponse(BadRequest, "Submitted malformed data.") 
        } 
       } 
      } 
     } ~ 
      /** 
      * grab permissions for a single user 
      */ 
     get { 
      try { 
      val uperm = UserPermission.fetch(id) 
      respondWithMediaType(`application/json`) { 
       complete { 
       generate(uperm) 
       } 
      } 
      } catch { 
      case e: java.lang.NullPointerException => 
       complete { 
       HttpResponse(NotFound, "Object not found.") 
       } 
      } 
     } 
     } ~ 

여기에 뭔가가 빠졌습니까?

답변

2
당신은 대신 "PathElement를"보십시오, 그런 식으로 "휴식"을 사용 should't

:

path(PathElement/"permission") { id => 
    ... 
} 

을 그것이 지능이 IntNumber를 사용하지만 나머지는 경우에는 URL의 "휴식"을 일치시킬 경우 결국 ... 당신이 사용했던 방식대로 이해가되지 않습니다. 결국 끝나야합니다.

+0

감사합니다. 나는 실제로 소스 코드로 들어가서 질문을 업데이트하는 것을 잊어 버렸습니다 : P – crockpotveggies

관련 문제