Quero passar um parâmetro “A1B2C3” para um aplicativo GWT com base no Google App Engine. Eu faço como www.example.com/index.html?key=A1B2C3. Embora esteja funcionando, eu gostaria de usar URLs bonitas. É possível rewrite URLs no Google App Engine? Eu não consegui descobrir como.
www.example.com/A1B2C3
ao invés de
www.example.com/index.html?key=A1B2C3
Estou usando o Google App Engine e o GWT. Tudo em Java.
Essa é uma pergunta legal. Eu descobri como fazer isso para python também.
app.yaml:
- url: /test/(.*) script: test.py \1
test.py:
#!/usr/bin/env python import sys def main(): for arg in sys.argv: print arg if __name__ == '__main__': main()
Você precisa configurar o aplicativo (veja aqui ). Em outras palavras, você precisa “conectar” os padrões desejados.
Do manual, um exemplo:
redteam /red/* blueteam /blue/*
Tente UrlRewriteFilter: http://tuckey.org/urlrewrite/ (ou repository do github ) é um simples filtro Java EE, então deve funcionar.
Economize tempo e use o Restlet. Você pode fazer exatamente isso e eu fiz isso em dois projetos diferentes. É bem direto. Se você precisar de ajuda, me avise.
Eu provavelmente usaria PrettyFaces, http://ocpsoft.com/prettyfaces/ , que permite fazer mapeamentos de URL diretamente sobre um aplicativo existente.
Você acabou de configurar algo assim no arquivo pretty-config.xml:
Ou se você quiser rewrite parâmetros, você pode fazer isso:
E isso significa que qualquer URL (input) agora se torna:
/my/pretty/url/value -> /my/existing/url?param=value
E os seus URLs de saída ficarão assim nas páginas HTML e nos redirecionamentos:
/my/existing/url?param=value -> /my/pretty/url/value
Por isso, é fácil adicionar aos seus aplicativos atuais.
Aqui está outro projeto que, na minha opinião, pode realmente ajudar você:
É chamado de restful-gwt … é muito bonito também: http://code.google.com/p/restful-gwt/
Boa sorte!
Esta é a melhor abordagem que encontrei até agora para implementar a reescrita de URL GAE Python