Defina um servidor da Web que use a API ou APIs que você criou. O Cloud Endpoints Frameworks para Python implementa a interface de gateway do servidor da Web (WSGI, em inglês) padrão para rotear solicitações da sua API para os métodos no seu código.
Como sempre, é preciso criar um arquivo chamado app.yaml
em que você configura o aplicativo do App Engine. Para definir o servidor da Web, faça alterações no arquivo app.yaml
.
Para definir um servidor da Web:
Crie um módulo Python, por exemplo,
main.py
e crie um objetoendpoints.api_server
no nível superior:O código
api = endpoints.api_server([EchoApi])
cria um aplicativo WSGI que encaminha solicitações de API para os métodos na classeEchoAPI
.Você pode fornecer uma lista de objetos
remote.Service
definidos quando você criou sua API paraendpoints.api_server
. Se você tiver uma API implementada em várias classes, o objetoremote.Service
será uma coleção de classes conforme descrito em Como criar uma API implementada com várias classes.A criação de um módulo separado para o objeto
endpoints.api_server
depende de se você criou uma única API ou várias.Se você tiver criado várias APIs (que usam várias subclasses
remote.Service
) definidas em vários arquivos, recomendamos que crie um módulo separado para o objetoendpoints.api_server
para importar todos os arquivos de classe.Se você criou uma única API, será possível adicionar o código
endpoints.api_server
necessário ao módulo em que a API é definida, já que não é necessário importar outras classes.
No seu arquivo
app.yaml
, mapeie o servidor da Web que você acabou de criar para o local do Cloud Endpoints da seguinte maneira:em que
main
é o módulo do Python em que você definiu o objetoendpoints.api_server
.
Como exibir sua API de um caminho diferente
Opcional: para exibir a API a partir de um caminho diferente, por exemplo, /api/
:
Modifique o decorador:
@endpoints.api(name='echo', version='v1', base_path='/api/')
Altere a seção
handlers
no arquivoapp.yaml
:handlers: - url: /api/.* script: main.api
Como gerar registros no Endpoints Frameworks para Python
O Endpoints Frameworks para Python usa o módulo de registro padrão do Python para registrar informações sobre o status do aplicativo e o ciclo de vida da solicitação. Para saber mais sobre os registros do App Engine e sobre como visualizá-los, consulte Como ler e gravar registros de aplicativos na documentação do App Engine.
O módulo de geração de registros do Python fornece níveis de registros predefinidos. Em ordem crescente de gravidade, os níveis de registros são:
Nível de registro | Descrição |
---|---|
DEBUG |
Fornece registros detalhados. Normalmente, esse nível só é definido ao solucionar um problema. |
INFO |
O nível de registro padrão para o Endpoints Frameworks. Permite rastrear o progresso do aplicativo em um alto nível. |
WARNING |
Alerta que algo inesperado ocorreu, mas o aplicativo consegue se recuperar e ser executado normalmente. |
ERROR |
Alerta sobre um erro que pode causar perda de funcionalidade, mas o aplicativo ainda está em execução. |
CRITICAL |
Alerta sobre um erro ou evento grave que pode encerrar o aplicativo. |
Os loggers existem em uma hierarquia separada por pontos. Por exemplo, o logger endpoints.api_config
é filho do logger endpoints
. Essa hierarquia permite um controle preciso sobre quais registros são emitidos ou suprimidos. Normalmente, só são alterados os dois loggers raiz para o Endpoints Frameworks: endpoints
e endpoints_management
.
Habilitar a geração de registros DEBUG
para o Endpoints Frameworks
Para evitar sobrecarregar o leitor de registro, o Endpoints Frameworks configura seus loggers para registrar apenas entradas de log com o nível INFO
ou superior. Em qualquer momento depois de o Endpoints Frameworks ter sido importado para o módulo, é possível alterar o nível de registro da seguinte maneira:
import logging
logging.getLogger('endpoints').setLevel(logging.DEBUG)
logging.getLogger('endpoints_management').setLevel(logging.DEBUG)
O método setLevel
define o nível mínimo de registro para o logger.