Web Server Gateway InterfaceO Web Server Gateway Interface (WSGI), em português Interface de Porta de Entrada do Servidor Web, é uma especificação para uma interface simples e universal entre servidores web e aplicações web ou frameworks para a linguagem de programação Python. Foi originalmente especificada na PEP 333, de autoria de Philip J. Eby, e publicada em 7 de dezembro de 2003.[1] Desde então foi adotada como um padrão para o desenvolvimento de aplicações web em Python. A última versão da especificação é v1.0.1, também conhecida como PEP 3333, publicada em 26 de setembro de 2010.[2] IdeiaFrameworks de aplicação web em Python têm sido um problema para novos usuários de Python pois a escolha do framework web pode limitar a escolha de servidores web úteis, e vice-versa. Aplicações em Python eram frequentemente projetadas para apenas um dos servidores CGI, FastCGI, mod_python ou alguma outra API personalizada de um servidor web específico. O WSGI foi criado como uma interface de baixo-nível entre servidores web e aplicações web ou frameworks para promover uma base comum para o desenvolvimento de aplicações web portáteis. Visão geral da especificaçãoO WSGI possui dois lados: o lado "servidor" ou "gateway" e o lado "aplicação" ou "framework". Para processar uma requisição WSGI, o lado servidor fornece informações de ambiente e uma função de callback para o lado aplicação. A aplicação processa a requisição e retorna a resposta para o lado servidor usando a função de callback que o lado servidor forneceu. O chamado middleware WSGI implementa os dois lados da API, desta forma ele pode intermediar entre um servidor WSGI e uma aplicação WSGI: o middleware age como uma aplicação de algum ponto de vista do servidor WSGI e como um servidor de algum ponto de vista da aplicação WSGI. Um componente "middleware" pode realizar funções como:
Aplicação de exemploUma aplicação "Olá Mundo" compatível com WSGI escrita em Python: def aplicacao(ambiente, resposta_inicio):
resposta_inicio('200 OK', [('Content-Type', 'text/plain')])
yield 'Olá Mundo\n'
Onde:
Aplicações e frameworks compatíveis com WSGIHá vários frameworks de aplicação web que suportam WSGI:
Servidores que suportam WSGIEsta é uma lista de servidores WSGI. Em alguns casos são apenas sistemas WSGI, em outros um pacote que inclui um servidor.
Ligações externasReferências
|