Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara melaksanakan penjanaan automatik dokumen API dan paparan UI dalam FastAPI

Cara melaksanakan penjanaan automatik dokumen API dan paparan UI dalam FastAPI

WBOY
WBOYasal
2023-07-28 23:27:222316semak imbas

Cara melaksanakan penjanaan automatik dokumen API dan paparan UI dalam FastAPI

Dengan rangka kerja Python yang berkuasa seperti FastAPI, kami boleh membina API Web berprestasi tinggi dengan mudah. Walau bagaimanapun, semasa membina API, kami juga memerlukan dokumentasi API yang jelas dan mudah difahami untuk membantu pembangun lain memahami dan menggunakan API kami. Artikel ini akan memperkenalkan cara menggunakan FastAPI untuk menjana dokumen API secara automatik dan memaparkannya melalui UI.

Pertama, kita perlu memasang FastAPI dan perpustakaan bergantung yang berkaitan. Jalankan arahan berikut dalam baris arahan untuk memasangnya:

pip install fastapi
pip install uvicorn
pip install fastapi_utils

Seterusnya, kita perlu mengimport modul yang diperlukan:

from fastapi import FastAPI
from fastapi_utils.api_model import APIModel
from fastapi_utils.api_doc import APIModelDoc

Kemudian, kita mencipta contoh FastAPI:

app = FastAPI()

Seterusnya, kita boleh menentukan model API. Model API ditakrifkan menggunakan kelas APIModel yang disediakan oleh FastAPI, yang boleh mengandungi medan untuk permintaan dan respons API. APIModel类来定义的,它可以包含用于API请求和响应的字段。

class User(APIModel):
    id: int
    name: str
    email: str

在我们的FastAPI应用程序中,我们可以使用该模型来定义API路由和逻辑。

@app.get("/users/{user_id}", response_model=User, summary="Get user by ID", tags=["users"])
def get_user(user_id: int):
    return {"id": user_id, "name": "John Doe", "email": "johndoe@example.com"}

在上面的代码中,我们为HTTP GET请求定义了一个路由/users/{user_id},并指定了响应模型为User。我们还为该路由添加了一个简要说明和一个标签,以后我们可以通过标签来组织和过滤API文档。

接下来,我们可以使用APIModelDoc类来为我们的API模型生成文档。

docs = APIModelDoc(app)
docs.register(User)

有了以上代码,我们的API模型就被注册到了API文档中。

最后,我们需要使用docs.html方法来获取自动生成的API文档的HTML代码。

@api.route('/docs', method="GET", tags=["docs"])
def get_docs():
    return docs.html()

在上面的代码中,我们定义了一个GET路由/docs,并返回了自动生成的API文档的HTML代码。这里我们为这个路由添加了一个标签docs,以便在API文档中进行过滤和组织。

现在,让我们运行我们的FastAPI应用程序并查看自动生成的API文档。

if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=8000)

在命令行中执行以下命令以启动应用程序:

python app.py

然后在浏览器中访问http://localhost:8000/docsrrreee

Dalam aplikasi FastAPI kami, kami boleh menggunakan model ini untuk menentukan laluan dan logik API.

rrreee

Dalam kod di atas, kami mentakrifkan laluan /users/{user_id} untuk permintaan HTTP GET dan menentukan model respons sebagai User. Kami juga menambah penerangan ringkas dan label pada laluan, yang kemudiannya boleh kami gunakan untuk mengatur dan menapis dokumentasi API.

Seterusnya, kami boleh menggunakan kelas APIModelDoc untuk menjana dokumentasi untuk model API kami. 🎜rrreee🎜Dengan kod di atas, model API kami didaftarkan dalam dokumen API. 🎜🎜Akhir sekali, kita perlu menggunakan kaedah docs.html untuk mendapatkan kod HTML dokumentasi API yang dijana secara automatik. 🎜rrreee🎜Dalam kod di atas, kami mentakrifkan laluan GET /docs dan mengembalikan kod HTML dokumentasi API yang dijana secara automatik. Di sini kami menambahkan teg docs pada laluan ini untuk menapis dan menyusunnya dalam dokumentasi API. 🎜🎜Sekarang, mari jalankan aplikasi FastAPI kami dan lihat dokumentasi API yang dijana secara automatik. 🎜rrreee🎜Laksanakan arahan berikut dalam baris arahan untuk memulakan aplikasi: 🎜rrreee🎜Kemudian lawati http://localhost:8000/docs dalam penyemak imbas anda dan anda sepatutnya dapat melihat yang dijana secara automatik dokumen API. 🎜🎜Melalui langkah di atas, kami berjaya melaksanakan penjanaan automatik dan paparan UI dokumen API dalam FastAPI. Anda boleh menyesuaikan dan melaraskan lagi gaya dan kandungan dokumentasi API mengikut keperluan anda. 🎜🎜Semoga artikel ini membantu anda membina API yang berkuasa menggunakan FastAPI dan menyediakan dokumentasi yang jelas dan mudah difahami untuk API anda. 🎜

Atas ialah kandungan terperinci Cara melaksanakan penjanaan automatik dokumen API dan paparan UI dalam FastAPI. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn