Reactive mongo 드라이버에서 play-framework을 사용하고 있습니다. 다음의 예와 같은 경로 PARAM로 내 ID가 경로 라우팅에서Play-Framework : companyId 매개 변수를 BSONObjectID로 구문 분석 할 수 없습니다. 잘못된 ObjectId
object StringToBSONObjectIdBinder {
/* This is for Path Parameter*/
implicit object pathBindableBSONObjectID extends play.api.mvc.PathBindable.Parsing[BSONObjectID](
BSONObjectID(_), _.stringify,
(key: String, e: Exception) =>
"Cannot parse parameter %s as BSONObjectID: %s".format(key, e.getMessage))
/* This is for query String*/
implicit object queryStringBindableBSONObjectID extends play.api.mvc.QueryStringBindable.Parsing[BSONObjectID](
BSONObjectID(_), _.stringify,
(key: String, e: Exception) =>
"Cannot parse parameter %s as BSONObjectID: %s".format(key, e.getMessage))
}
내가 쉽게 생각 :
GET /company/:companyId/users-detail controllers.CompanyController.userDetail(companyId: BSONObjectID)
내 BSONObjectId
쉽게 매핑 우리의 루트 파일에 반응 몽고 BSONObjectId
을 처리하기 위해, 나는 다음과 같은 바인더를 만드는 오전 내 요청 처리기 경로 매개 변수와 함께. 그러나 나는 다음과 같은 경로를 사용하고 때 아래 위의 경로 후 : 내가 BadRequest
다음 얻고있다
GET /company/detail controllers.CompanyController.companyDetail
:
For request 'GET /company/detail?t=1466673779753' [Cannot parse parameter companyId as BSONObjectID: wrong ObjectId: 'teams']
을하지만 난 아래 경로를 전환 할 때 :
GET /company/detail controllers.CompanyController.companyDetail
GET /company/:companyId/users-detail controllers.CompanyController.userDetail(companyId: BSONObjectID)
서비스 성공적으로 실행하십시오. 나는 아직도 실제 문제가 무엇인지 알지 못한다. 이것이 플레이 프레임 워크의 문제입니까, 아니면 내 코드에 문제가 있습니까?