O servidor awful admite novos parâmetros de linha de comando:
--development-mode
, --ip-address
e --port
. Os parâmetros --development-mode
e --port
servem, respectivamente, para fazer com que o servidor escute nos dados endereço IP e porta.O parâmetro
--development-mode
ativa o modo de desenvolvimento de awful. Neste modo, funcionalidades como o Web REPL e o Session inspector são automaticamente ativadas. O caminho /reload
também é automaticamente criado para que as aplicações possam ser recarregadas sem que seja necessário reiniciar o servidor. No modo de desenvolvimento, mensagens de erro das aplicações são exibidas no cliente (e.g., navegador). Abaixo está um exemplo (erro.scm
):#!/usr/bin/awful
(use awful)
(define-page (main-page-path)
(lambda ()
(++ "Oops " 'erro)))
Para executar no modo de desenvolvimento:
$ awful --development-mode erro.scm
Ao acessar
http://localhost:8080/
a mensagem de erro do screenshot abaixo é exibida no navegador, seguida de um link para o Web REPL.Quando executado em modo de desenvolvimento, o parâmetro
development-mode?
tem como valor #t
.Outra novidade é o parâmetro
awful-response-headers
o qual permite ajustar os campos do cabeçalho de resposta para o cliente. Abaixo está um exemplo de um procedimento para associar URIs a respostas JSON:#!/usr/bin/awful
(use awful)
(define (define-json path body)
(define-page path
(lambda ()
(awful-response-headers '((content-type "text/json")))
(body))
no-template: #t))
(define-json (main-page-path)
(lambda ()
"{a: 1}"))
A menos que explicitamente fornecido, awful calcula automaticamente o tamanho da resposta e o atribui ao campo
Content-Length
.Hoje também disponibilizei um pequeno texto com instruções sobre como instalar awful em sistemas Unix[-like].
2 comentários:
Olá Mario!
Parabéns pelo awful, é realmente maravilhosa a forma como você está simplificando o desenvolvimento web com Scheme. Funcionalidades que sempre pensei para um framework e inveja de outros como Seaside em Smalltalk (o web-repl está ficando muito legal!).
Documentação impecável também. Se não te conhecesse me surpreenderia :-)
Abraços amigo!
Alô Vilson
Obrigado pelos comentários. Fico feliz por saber que estás gostando do desenvolvimento de awful.
Programação para a web é uma tristeza mesmo, o que torna o desenvolvimento de awful dureza. Por outro lado, o uso de awful tem facilitado bastante o desenvolvimento de coisas para a web, então o esforço de alguma forma tem sido recompensado.
Tenho me preocupado em fornecer uma documentação minimamente decente. Um dos motivos é eu mesmo tê-la disponível para consulta, pois seguidamente não lembro como fazer algumas coisas. :-) A título de curiosidade, a documentação é quase duas vezes maior (em bytes) do que o tamanho do código.
O código é pequeno. No total, aplicação e extensão somam 800 linhas de código. No entanto, awful depende de várias outras extensões (em http://tests.call-cc.org/2010/08/18/salmonella-report/dep-graphs/awful.png há uma figura mostrando o grafo de dependências).
Abraço.
Postar um comentário