首頁 >後端開發 >Python教學 >如何在FastAPI中使用外部服務進行第三方集成

如何在FastAPI中使用外部服務進行第三方集成

PHPz
PHPz原創
2023-07-29 08:21:101190瀏覽

如何在FastAPI中使用外部服務進行第三方整合

FastAPI是一個快速(高效能)、易用、基於標準Python類型提示的Web框架。它能夠輕鬆地與外部服務進行第三方集成,實現更多功能和提供更好的用戶體驗。本文將介紹如何在FastAPI中使用外部服務進行第三方集成,並附有程式碼範例。

1. 安裝依賴函式庫

首先,我們需要安裝一些必要的依賴函式庫。在終端機中執行下列指令:

pip install fastapi
pip install httpx
  • fastapi:FastAPI框架。
  • httpx:一個非同步HTTP客戶端。

2. 建立FastAPI應用程式

接下來,我們開始建立一個基本的FastAPI應用程式。在終端機中執行以下命令:

mkdir fastapi_integration
cd fastapi_integration
touch main.py

然後,打開main.py文件,並添加以下程式碼:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "Hello, FastAPI!"}

這段程式碼建立了一個FastAPI應用,並定義了一個名為read_root的路由。當我們存取根路徑時,將傳回一個包含「Hello, FastAPI!」訊息的JSON回應。

接下來,執行以下指令啟動FastAPI應用程式:

uvicorn main:app --reload

你會看到以下輸出:

INFO:     Started server process [12345]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://localhost:8000 (Press CTRL+C to quit)

現在,你可以在瀏覽器中存取http ://localhost:8000,看到回傳的JSON回應。

3. 使用外部服務

接下來,我們將使用外部服務進行第三方整合。在本例中,我們將使用一個名為Chuck Norris Jokes API的公開API,用於取得一些有趣的笑話。我們將使用httpx函式庫發送HTTP請求來與這個API互動。

首先,我們需要安裝httpx函式庫。在終端機中執行以下命令:

pip install httpx

然後,我們將在main.py檔案中加入以下程式碼來取得從API中取得笑話並回傳回應:

import httpx

@app.get("/joke")
async def get_joke():
    url = "https://api.chucknorris.io/jokes/random"
    async with httpx.AsyncClient() as client:
        response = await client.get(url)
        joke = response.json()["value"]
        return {"joke": joke}

在這個程式碼區塊中,我們先定義了一個名為get_joke的路由。當我們造訪/joke路徑時,會傳送一個非同步HTTP GET請求到https://api.chucknorris.io/jokes/randomURL,然後取得JSON回應中的笑話,並將其返回。

重新啟動FastAPI應用,然後在瀏覽器中存取http://localhost:8000/joke,你會看到一個包含一個隨機笑話的JSON回應。

4. 總結

本文介紹如何在FastAPI中使用外部服務進行第三方整合的步驟和範例程式碼。我們先安裝了所需的依賴函式庫,然後建立了一個基本的FastAPI應用程式。接下來,我們使用httpx庫與Chuck Norris Jokes API進行交互,並將得到的笑話傳回給客戶端。

透過使用外部服務,我們可以輕鬆實現第三方集成,為我們的FastAPI應用程式添加更多的功能和擴充性。

原始碼連結:[https://github.com/fastapi/fastapi](https://github.com/fastapi/fastapi)

以上是如何在FastAPI中使用外部服務進行第三方集成的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn