Obrigado pelas respostas.
Depois de pesquisar, encontrei resty , que é um wrapper de script de shell em torno do curl . Isso é realmente o que eu quero. São 155 linhas de script de shell e, quando eu o executo, recebo funções para GET, PUT, POST, DELETE e OPTIONS. Essas funções são apenas wrappers em torno do programa de curl encontrado no meu caminho.
Funciona assim no MacOSX bash:
$ . resty
$ resty https://api.example.org
https://api.myhost.com*
$ GET /v1/o/orgname -u myusername:password
{
"createdAt" : 1347007133508,
"createdBy" : "admin",
"displayName" : "orgname",
"environments" : [ "test", "prod" ],
"lastModifiedAt" : 1347007133508,
"lastModifiedBy" : "admin",
"name" : "orgname",
"properties" : {
"propertyList" : [ ... ]
},
}
$
A primeira linha lá apenas executa os comandos no shell atual.
A próxima linha, o comando "resty", define a base do URL. Depois disso, qualquer chamada para GET, PUT, POST ... referencia implicitamente essa base. Eu mostrei um exemplo que emite JSON prettified. Eu acho que se o seu servidor emite JSON diminuído, você pode imprimi-lo com um script externo, canalizando a saída.
Há suporte para preferências baseadas em host. Suponha que seu host de destino seja api.example.org. Crie um arquivo chamado ~ / .resty / api.example.org, e insira lá, linhas que especifiquem os argumentos que devem ser passados para cada chamada curl ao host com esse nome. Cada verbo http obtém sua própria linha. Então, inserindo este conteúdo no arquivo:
GET -u myusername:mypassword --write-out "\nStatus = %{http_code}\n"
... significa que toda vez que eu fizer um GET quando api.example.org for o nome do host base, o comando curl usará implicitamente os -u
e --write-out
args mostrados lá. (-u para autenticação básica).
Como outro exemplo, você pode especificar o cabeçalho Accept nesse arquivo, para que você sempre solicite XML:
GET --header "Accept: application/xml"
Qualquer linha de comando curl arg é suportado nesse arquivo de preferências. Todos os args de curl para a tupla host + verbo precisam ir em uma única linha no arquivo de preferências.
Prático.