您必须定义一个使用您创建的一个或多个 API 的网络服务器。 Python 版 Cloud Endpoints Frameworks 实现标准的网络服务器网关接口 (WSGI),可将对 API 的请求路由到代码中的方法。
正如在 App Engine 上运行的每个应用一样,您必须创建一个名为 app.yaml
的文件,并在该文件中配置 App Engine 应用的设置。要定义网络服务器,请更改 app.yaml
文件。
要定义网络服务器,请执行以下操作:
创建一个 Python 模块(例如
main.py
),然后在顶层创建一个endpoints.api_server
对象:代码
api = endpoints.api_server([EchoApi])
将创建一个 WSGI 应用,该应用可将 API 请求路由到EchoAPI
类中的方法。您可以提供一个
remote.Service
对象列表(您在创建 API 时定义)给endpoints.api_server
。如果您拥有的 API 是使用多个类实现的,则您的remote.Service
对象将是类的集合,如创建使用多个类实现的 API 中所述。是否为
endpoints.api_server
对象创建单独的模块取决于您创建了单个 API 还是多个 API。如果您使用多个
remote.Service
子类创建了多个 API,而且这些 API 是在多个文件中定义的,我们建议您为endpoints.api_server
对象创建单独的模块,以便导入所有类文件。如果您创建了单个 API,则可以将所需的
endpoints.api_server
代码添加到您定义 API 的模块中,因为您不需要导入任何其他类。
在
app.yaml
文件中,将刚创建的网络服务器映射到 Cloud Endpoints 位置,如下所示:其中,
main
是您在其中定义了endpoints.api_server
对象的 Python 模块。
从另一路径提供 API
可选:要通过其他路径(例如 /api/
)提供 API,请执行以下操作:
修改修饰器:
@endpoints.api(name='echo', version='v1', base_path='/api/')
更改
app.yaml
文件中的handlers
部分:handlers: - url: /api/.* script: main.api
Python 版 Endpoints Frameworks 中的日志记录
Python 版 Endpoints Frameworks 使用标准的 Python 日志记录模块来记录有关应用状态和请求生命周期的信息。要详细了解 App Engine 日志以及如何查看这些日志,请参阅 App Engine 文档中的读取和写入应用日志。
Python 日志记录模块提供预定义的日志级别。日志级别如下(按严重程度递增顺序排列):
日志级别 | 说明 |
---|---|
DEBUG |
提供详细的日志。通常只有在排查问题时才设置此级别。 |
INFO |
Endpoints Frameworks 的默认日志级别。允许您跟踪大概的应用进度。 |
WARNING |
提醒您发生了意外,但应用可以恢复并照常运行。 |
ERROR |
提醒您发生了可能导致部分功能丢失的错误,但应用仍在运行。 |
CRITICAL |
提醒您发生了可能导致应用关闭的严重错误或事件。 |
记录器是以用点分隔的层次结构形式存在的。例如,记录器 endpoints.api_config
是记录器 endpoints
的子级。您可以通过此层次结构精确控制发出或禁止哪些日志。通常,您只需更改 Endpoints Frameworks 的两个根记录器:endpoints
和 endpoints_management
。
为 Endpoints Frameworks 启用 DEBUG
日志记录
为避免日志读取器过载,Endpoints Frameworks 将其记录器设置为仅记录 INFO
或更高级别的日志条目。在将 Endpoints Frameworks 导入模块之后,您可以随时按如下方式更改日志级别:
import logging
logging.getLogger('endpoints').setLevel(logging.DEBUG)
logging.getLogger('endpoints_management').setLevel(logging.DEBUG)
setLevel
方法设置的是记录器的最低日志级别。