[httpie] Nested Json 요청

httpie 는 외부의 Open API 또는, 개발 중인 REST API 를 테스트해볼 때에 유용하게 사용하는 도구입니다. 특히나 JSON 을 입력으로 요청할 때에는 curl에 비해서 타이핑하는 양도 훨씬 줄어듭니다.

예를 들어 다음과 같은 JSON을 입력으로 요청한다고 하면,

{
  "username": "johndoe@gmail.com",
  "password": "johndoe1234",
  "passwordConfirm": "johndoe1234"
}

다음과 같이 할 수 있습니다.

http post localhost:8080/user "username=johndoe@gmail.com" "password=johndoe1234" "passwordConfirm=johndoe1234"

curl을 사용한다고 하면 다음과 같습니다.

curl -XPOST -H "Content-Type: application/json" localhost:8080/user -d
> {
>  "username": "johndoe@gmail.com",
>  "password": "johndoe1234",
>  "passwordConfirm": "johndoe1234"
> }

그런데, httpie 도 다음과 같은 nested 구조의 JSON을 입력으로 하는 것은 간단하게 되지 않습니다.

{
  "user": {
  "name": "johndoe@gmail.com",
  "password": "johndoe1234",
  "passwordConfirm": "johndoe1234"
  }
}

3가지 정도의 방법이 있습니다.

1. stdin 파이프

echo '{"user": {"name": "johndoe@gmail.com", "password:"johndoe1234", "passwordConfirm":"johndoe1234"}}' | http post localhost:8080/user

2. JSON 텍스트를 그대로 입력

http post localhost:8080 user:='{"name": "johndoe@gmail.com", "password:"johndoe1234", "passwordConfirm":"johndoe1234"}'

3. JSON 파일 입력

복잡한 구조의 nested JSON 으로 되어 있다면, JSON을 파일로 저장한 뒤에 다음과 같이 합니다.

http post localhost:8080/users < user.json

댓글 남기기