Cipta API dalam inutes dengan Python

Barbara Streisand
Lepaskan: 2024-10-23 20:07:02
asal
670 orang telah melayarinya

"Buat API dalam 5 minit dengan FastAPI. Rangka kerja Python berprestasi tinggi yang moden, FastAPI memudahkan untuk membina aplikasi web yang berkuasa."

Pemasangan
Pasang FastAPI dan uvicorn (pelayan ASGI) menggunakan pip:

pip pasang fastapi uvicorn
pip pasang fastapi

Mari cipta API kami

Buka notepad dan tampal kandungan di bawah, simpan fail sebagai data.json (kami akan menambah data pada fail ini menggunakan kaedah POST dan akan mendapatkan semula rekod menggunakan kaedah GET

data.json

[
   {
      "name": "John",
      "age": 25
   },
   {  "name": "Smith",
      "age": 27
   }
]
Salin selepas log masuk

Sekarang buat fail python baharu, namakannya sebagai app.py dan tampal kod di bawah

# This section imports necessary modules and classes from the FastAPI library and Python's standard library. It imports FastAPI for creating the web application, HTTPException for raising HTTP exceptions, List for type hints, and json for working with JSON data.

from fastapi import FastAPI, HTTPException
from typing import List
import json

# This creates an instance of the FastAPI class, which will be the main application instance for handling HTTP requests.
app = FastAPI()

# This block reads the content of the "data.json" file using a context manager (with statement) and loads the JSON data into the initial_data variable.
with open("data.json", "r") as file:
    initial_data = json.load(file)

# This line initializes the data variable with the loaded JSON data, effectively creating a list of dictionaries containing user information.
data = initial_data

# This decorator (@app.get(...)) defines a GET endpoint at the "/users" URL. It uses the get_users function to handle the request. The response_model parameter specifies the expected response model, which is a list of dictionaries in this case.
@app.get("/users", response_model=List[dict])
async def get_users():
    return data

# This decorator (@app.post(...)) defines a POST endpoint at the "/users" URL. It uses the create_user function to handle the request. The response_model parameter specifies the expected response model, which is a single dictionary in this case.
# The create_user function attempts to append the received user dictionary to the data list. If successful, it constructs a response dictionary indicating the success. If an exception occurs during the attempt (e.g., due to invalid data), it constructs a response dictionary indicating an error.
@app.post("/users", response_model=dict)
async def create_user(user: dict):
    try:
        data.append(user)
        response_data = {"message": "User created successfully", "user": user}
    except:
        response_data = {"message": "Error creating user", "user": user}
    return response_data

# This function uses a context manager to open the "data.json" file in write mode and then uses json.dump to write the contents of the data list back to the file, formatting it with an indentation of 4 spaces.
def save_data():
    with open("data.json", "w") as file:
        json.dump(data, file, indent=4)

# This decorator (@app.on_event(...)) defines a function that will be executed when the FastAPI application is shutting down. In this case, it calls the save_data function to save the data back to the JSON file before the application exits.
@app.on_event("shutdown")
async def shutdown_event():
    save_data()

# This block checks if the script is being run directly (not imported as a module). If it is, it uses the uvicorn.run function to start the FastAPI application on host "0.0.0.0" and port 8000. This is how you launch the application using the Uvicorn ASGI server.
if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)
Salin selepas log masuk

Jalankan app.py, pelayan Uvicorn akan memulakan proses baharu untuk mengendalikan permintaan HTTP yang masuk. setelah pelayan siap dan berjalan, buka Posmen, buat permintaan GET baharu dengan URL: http://0.0.0.0:8000/users dan klik hantar

Create API’s in inutes with Python

Create API’s in inutes with Python

Anda akan melihat respons JSON dengan senarai pengguna daripada fail data.json.

Sekarang mari tambah pengguna pada fail ini dengan kaedah POST. Buat permintaan baharu, pilih kaedah POST, klik pada badan, pilih mentah, pilih JSON daripada menu lungsur dan tampal JSON di bawah sebagai muatan untuk menambah pengguna baharu

{
    "name": "Tina",
    "age": 22
}
Salin selepas log masuk

Create API’s in inutes with Python

Sebaik sahaja anda mengklik hantar, anda akan mendapat balasan semula jika pengguna berjaya ditambahkan dengan kod status 200 OK

Create API’s in inutes with Python

Dan itu sahaja, kami telah berjaya mencipta API dengan kaedah GET/POST untuk melihat dan menambah pengguna pada fail. kembali ke permintaan GET dan klik hantar, kini anda akan melihat pengguna Tina turut disenaraikan dalam respons API.

Satu perkara yang menakjubkan tentang FastAPI ialah ia menjana dokumentasi Swagger secara automatik untuk titik akhir API anda, menjadikannya lebih mudah untuk pembangun memahami dan menggunakan API anda dengan berkesan.

Jika anda membuka penyemak imbas dan menaip http://localhost:8000/docs, anda akan melihat dokumen kesombongan untuk API

Create API’s in inutes with Python

Sila ambil perhatian, ini hanyalah contoh asas untuk mencipta API pantas dengan python, anda selanjutnya perlu melakukan lebih banyak konfigurasi atau pengekodan terutamanya dari segi pengendalian ralat, pengesahan data dan keselamatan.

Atas ialah kandungan terperinci Cipta API dalam inutes dengan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!