2010-12-31 3 views
0

Ruby 서버와 MongoDB 데이터베이스를 사용하여 RESTful API를 구축하고 있습니다. 데이터베이스는 자연스러운 데이터 유형 (최소한 지원하는 데이터 유형)을 그대로 유지하면서 오브젝트를 그대로 저장합니다.HTTP POST의 매개 변수에 대한 데이터 입력이 있습니까?

현재 HTTP GET을 사용하여 API에 매개 변수를 전달하고 있으며 내 데이터베이스의 모든 항목이 문자열로 저장된다는 점을 알아 두십시오. (루비 코드가 params[] 해시에 액세스 할 때 보이는 내용이기 때문에). 배포 후 API는 독점적으로 HTTP POST를 사용하므로 내 질문은 각 매개 변수에 대해 POST를 통해 개별적으로 전송되는 데이터 유형을 지정할 수 있는지 여부입니다 (예를 들어 "uid"는 정수이고 "name"은 문자열입니까?) 또는 데이터베이스에 전달하기 전에 루비 내에서 이들을 캐스팅해야합니까?

내가 던지면 관련된 문제가 있습니까?

+0

어디에서 유형을 적용 하시겠습니까? HTTP 수준에서? –

답변

1

아니요, 불가능합니다.

포스트 변수는 단지 문자열 키 값 쌍입니다.

그러나 더 높은 수준의 로직을 구현할 수는 있습니다.

예를 들어 일반적으로 이름에 접미어를 붙이는 것이 일반적입니다. 예를 들어, _i으로 끝나는 모든 것은 정수 등으로 파싱됩니다.

그러나 유형을 보존하면 어떤 이점이 있습니까? 아니면 더 잘 물었다. 어떻게 출력합니까? 저장 전용입니까?

그렇다면 문자열을 적절한 유형으로 변환하여 응용 프로그램에 이익이되고 전달하기 전에 문자열로 변환하는 것이 문제가되지 않습니다.

+0

고마워요! 나는 루비에서 그들을 캐스팅 할 것이다. vars를 주조 할 때주의해야 할 것이 있습니까? 보안 관련 사항이 있습니까? – lms

+0

아니요, 당신이주의해야 할 유일한 것은 당신이 데이터를 엉망으로 만들지 않는다는 것입니다. 예를 들어 정수로 "0001"을 캐스팅하고 맨 처음 0을 잃어 버렸을 때 변환하면 ... –

관련 문제