RESTFox

Atenção, este blog foi migrado para: http://brunopereira.org

Eu tenho trabalhado bastante com web services REST ultimamente. Para testar meus serviços, a forma padrão que eu uso para testar é criar alguns testes unitários que montam as requisições e recebem as respostas com o commons-http-client.

O commons-http-client é perfeito para testes unitários, e para uso por uma aplicação. Para testar manualmente, entretanto, eu gostaria de algo mais prático. Pensando um pouco nas características dos testes que eu faço, um plugin do Firefox seria a ferramenta perfeita. Eu precisaria criar requisições HTTP com qualquer método (além de GET e POST) e especificar o corpo da requisição (onde for o caso), assim como alguns headers também.

O caso de uso principal deste plugin seria a criação de requisições GET, POST, PUT ou DELETE nas quais eu pudesse especificar os XMLs do corpo (aplicável apenas para POST e PUT) e pudesse conferir a resposta HTTP completa, incluindo todos os headers. Isso já seria uma facilidade enorme. Para refinar, deveria ser possível guardar alguns templates de XMLs de entrada. Um exemplo claro que me vem à cabeça é um template de XML no formato Atom, que poderia ser usado para requisições à Google Data API, entre diversos outros serviços que já utilizam o Atom como formato padrão de documentos.

Eu dei uma procurada boa e não achei nenhum plugin que fizesse nem uma parte disso que eu quero. Caso vocês conheçam alguma ferramenta do gênero (mesmo que não seja plugin do Firefox) por favor me avisem. Se eu não descobrir nenhuma ferramenta que ofereça isso ao menos de forma parcial, pretendo desenvolver eu mesmo esse plugin para o Firefox. Eu ainda nem comecei a fazer nada desse plugin, mas já gosto do nome RESTFox. Vamos ver se sai algo bacana daí… eu nunca desenvolvi plugins para o Firefox, mas me parece que este será o primeiro🙂

3 respostas para RESTFox

  1. Não sei se você vai conseguir fazer o plugin porque, até onde sei, o Firefox não implementa PUT e DELETE. Justamente por isso que existe PUT e DELETE over POST em alguns frameworks como o Rails.

    Uma coisa que você poderia usar seria shell scripts com telnet, e aí você pode fazer alguma interface em PHP para facilitar a utilização.

  2. blpsilva disse:

    Pois é, eu não sei se rola invocar outros métodos além de GET e POST. Como não dá pra escolher isso pelo browser normalmente (até porque a maioria dos usuários não precisa disso), eu nunca soube.

    Caso não role um plugin do Firefox eu vou ter que pensar em alguma outra coisa. Uma página certamente atende, mas isso não teria a mesma flexibilidade de um plugin do browser por exemplo. Vou dar uma olhada no que consigo fazer com o Firefox antes de decidir outra coisa.

  3. blpsilva disse:

    Ah, e quanto ao lance do PUT e DELETE over POST, eu creio que os frameworks não implementam isso por causa do browser, mas por questões de segurança. Algumas redes podem restringir tráfego HTTP de métodos diferentes de GET e POST por questões de segurança, embora eu ache isso um exagero na maioria dos casos.

    Uma solução interessante que algumas implementações estão usando é definir o método HTTP utilizado dentro do header “x-http-method-override”. Isso é usado em requisições POST para dizer se é um POST, PUT ou DELETE, nos casos em que só POST pode ser usado.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: