Я новичок в JSON-RPC.Я закончил создание точек REST END, используя scala-код, но никогда не использовал json-rpc.У меня есть следующее требование.Мне нужно удалить определенные записи из базы данных Монго, и мне нужно создать конечную точку отдыха для этого с помощью json-rpc.Я могу сделать это, используя следующую конечную точку
def removeAllCourses(@ApiParam(hidden = true) organisationId: String): Route = {
pathEndOrSingleSlash {
operationName("DELETE:/coursesassignable/organisations/{organisationId}") {
delete {
authorizeAndGetToken(tokenValidator)(Set(UserRole.Admin), Set(UserRole.Editor)) {
directiveTokenContent =>
complete {
handleErr {
courseAssignableAdapterFactory.courseAssignableAdapter.removeAllCoursesFromOneOrg(organisationId).run(env).value
}
}
}
}
}
}
}
Это работает, но мне нужно сделать это с помощью вызовов JSON-RPC.Я просмотрел документацию и определенную библиотеку, но я не уверен, как интегрировать это в мою нынешнюю структуру кода.Я создал класс RPCRequest
, например
case class RPCRequest(jsonrpc: String, method: String, params: RequestParams, id: Int)
object RPCRequest {
implicit val codec: CodecJson[RPCRequest] = CodecJson.derive[RPCRequest]
}
, где jsonrpc будет 2.0, метод - метод удаления.Я не уверен, как интегрировать этот метод удаления с вызовом rpc.если мне нравится следующий метод
@Path("/coursesassignable/organisations")
def deleteCourseFromAllOrgs: Route = {
path("coursesassignable"/"organisations") {
operationName("DELETE:/coursesassignable/organisations") {
delete {
entity(as[RPCRequest]) { request =>
authorizeAndGetToken(tokenValidator)(Set(UserRole.Admin), Set(UserRole.Editor)) {
directiveTokenContent =>
complete {
/* . what code should come here....*/
}
}
}
}
}
}
}
removeAllCoursesFromOneOrg
в моем классе адаптера.