Artigo
· Out. 18 4min de leitura

Introdução ao suporte WSGI

wsgi_logo

Contexto

A Interface de Gateway de Servidor Web (WSGI) é uma convenção de chamada simples para servidores web encaminharem solicitações para aplicativos web ou frameworks escritos na linguagem de programação Python. WSGI é um padrão Python descrito detalhadamente em PEP 3333.

🤔 Ok, ótima definição, e qual o objetivo com o iris?

O IRIS 2024.2+ possui um novo recurso que permite que você execute aplicativos WSGI diretamente no IRIS. Esse recurso é uma ótima maneira de integrar o IRIS com outros frameworks e bibliotecas Python.

Isso segue a tendência de primeira experiência com Python, onde você pode usar Python para interagir com o IRIS, e agora você também pode executar aplicativos Python diretamente no IRIS.

Como usasr

Para instanciar um aplicativo WSGI no IRIS, você precisa configurá-lo na seção Segurança->Aplicações->Aplicações Web do Portal de Gerenciamento IRIS.

Exemplo simples com Flask:

Arquivo chamado app.py no diretório /irisdev/app/community:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

Configuração UI

imagem

Nesta seção, você pode configurar a aplicação WSGI providenciando:

  • Nome da aplicação

    • Isso corresponde ao nome de arquivo da aplicação WSGI
    • ex: app.py, mas sem a extensão .py : app
  • Nome chamável

    • A função chamável que será chamada pelo servidor WSGO
    • ex: app corresponde à variável app no arquivo app.py

    • app = Flask(__name__)

  • Diretório de aplicação WSGI
    • O caminho onde o aplicativo WSGI está localizado
    • ex: /irisdev/app/community
  • Tipo de protocolo Python
    • Pode ser wsgi ou asgi
    • wsgi é o valor padrão e será usado neste exemplo
    • asgi é para aplicações assíncronas
      • nós suportamos asgi sincronicamente por hora com o adaptador a2wsgi
  • DEBUG
    *Se marcado, o aplicativo WSGI será executado no modo de depuração
    • Isso é útil para fins de desenvolvimento, pois quaisquer alterações no aplicativo WSGI serão recarregadas automaticamente

CPF Merge

Você também pode configurar o aplicativo WSGI usando CPF. Aqui está um exemplo de configuração

[Actions]
CreateApplication:Name=/flask,NameSpace=IRISAPP,WSGIAppLocation=/irisdev/app/community/,WSGIAppName=app,WSGICallable=app,Type=2,DispatchClass=%SYS.Python.WSGI,MatchRoles=:%ALL,WSGIDebug=0,WSGIType=0

Arquivos de Log

Os logs do aplicativo WSGI são armazenados no arquivo WSGI.log localizado no diretório mgr da instância.

Exemplos

Here are some examples of WSGI applications that you can run on IRIS, they aim to show how to run different Python frameworks on IRIS.

Basically, the use case will be the same for all the frameworks:

Endpoints

  • /iris - Retorna um objeto JSON com as 10 principais classes presentes no namespace IRISAPP.
  • /interop - Um endpoint de ping para testar o framework de interoperabilidade do IRIS.
  • /posts - Um endpoint CRUD simples para um objeto Post
  • /comments - Um endpoint CRUD simples para um objeto Comentário.

Modelo de Objeto

Objeto Post:

  • id
  • título
  • conteúdo

Objeto Comentário

  • id
  • post_id (chave estrangeira para Post)
  • conteúdo

Flask

Django

FastAPI

Limitações

  • O ASGI é suportado de forma síncrona por enquanto com o adaptador a2wsgi
  • aplicações tornado ( jupyter, streamlit, .. ) não são suportadas, pois não são compatíveis com WSGI.
Discussão (0)1
Entre ou crie uma conta para continuar