I like it, though I got around curl's painful syntax by wrapping it in a few shell script. For example, here's my api_post script (meant to be used like "api_post users/123 first_name=Foo last_name=Bar") (pardon my incompetent shell scripting and redaction of company internals):
#!/bin/sh
resource="$1"
shift
declare -a post
while [ "$1" ]; do
post=("${post[@]}" "-F" "$1")
shift
done
if [ -z "${API_BASE:=}" ]; then
API_BASE=http://localhost:3000/api/v1/
echo "No API_BASE set. Using $API_BASE."
fi
verbose=""
[ -n "$API_VERBOSE" ] && verbose="-v"
if [ -z "${API_COOKIES:=}" ]; then
cookies=~/.api.cookies
else
cookies="$API_COOKIES"
fi
curl -0 -k -s -S $verbose -b "$cookies" -c "$cookies" -X POST "${post[@]}" "${API_BASE}${resource}"