網路伺服器若以您所建立的 API 運作,您必須加以定義。Python 適用的 Cloud Endpoints Frameworks 實作標準網路伺服器閘道介面 (WSGI),透過程式碼將 API 的要求轉送至方法。
您必須建立一個名為 app.yaml
的檔案,並在該檔案中進行 App Engine 應用程式的設定,就像在 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,我們建議您為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
方法會設定記錄器的最低記錄層級。