터미널을 통해 레일 앱에 컬 json 게시 요청


109

OS x 터미널에서 curl 명령을 사용하여 레일 앱에 사용자를 만들려고합니다. 데이터 형식에 관계없이 앱은 유효성 검사가 통과하지 않은 응답을 반환합니다.

curl http://localhost:3000/api/1/users.json -i -X POST -d {"user":{"first_name":"firstname","last_name":"lastname","email":"email@email.com","password":"app123","password_confirmation":"app123"}}"

나는 모든 변형을 시도했습니다. [] 대괄호를 사용해 보았고 user = {data ..}를 시도했지만 아무것도 작동하지 않는 것 같습니다. 어떤 아이디어?


왜 그냥 사용하지 $ rails cUser.create :first_name => 'John', :last_name => 'Smith', ...?
coreyward

23
@coryward : 그것은 API의 전체 목적을 무너 뜨릴 것입니다.
Wukerplank 2011

정말 내가 난처한 상황에 빠진이
크리스 태양에게

안녕하세요, Bob이 문제를 발견했을 수도 있지만 도움이 될 수 있다면 어제 찾은 게시물이 있습니다. squarism.com/2011/04/01/how-to-write-a-ruby-rails-3-rest-api XML에 관한 것이지만 도움이 될 수 있습니다. 친애하는.
plang

답변:


227

먼저 명령 끝에 불필요한 "이 있습니다.

이 시도

curl -v \
  -H "Accept: application/json" \
  -H "Content-type: application/json" \
  -X POST \
  -d ' {"user":{"first_name":"firstname","last_name":"lastname","email":"email@email.com","password":"app123","password_confirmation":"app123"}}' \
  http://localhost:3000/api/1/users

그거였다. 어젯밤에 -H Accept 및 Content-type이 필요하다는 것을 알았습니다.
chris sun

안녕하세요, abc.com/?a=4&b= { "x": "y"} 와 같은 스크립트를 호출합니다 . 컬 터미널에서 어떻게 생겼는지 말씀해 주시겠습니까 ??
user739711 2011 년

흠 내 경우에는 내가 따옴표와 함께 대상 URL을 둘러싸고 필요
조나단 린을

1
위의 -v (verbose) 스위치와 -H "Accept : ..."를 제거 할 수 있었지만 여전히 잘 작동합니다.
Dan

2
당신이 UR 사용 -d 이후뿐만 아니라 -X POST를 제거 할 수 있다고 생각
누가 복음 W
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.