Versioning dan dokumentasi API

Menerapkan AI ke Produksi dengan FastAPI

Matt Eckerle

Software and Data Engineering Leader

Mengapa versioning API?

 

  • Endpoint API seperti item menu
  • Jaga pelanggan lama tetap puas
  • Beberapa pelanggan ingin opsi baru
  • Iterasi tanpa memengaruhi pelanggan yang ada

Sebuah restoran

Menerapkan AI ke Produksi dengan FastAPI

API untuk pekerjaan AI di cloud

from pydantic import BaseModel

class AIJobV1(BaseModel):
    job_name: str
    data: bytes
class AIJobV1(BaseModel):
    job_name: str
    data: bytes
    config: dict

Logo FastAPI AI Cloud

Menerapkan AI ke Produksi dengan FastAPI

Endpoint berversi

from pydantic import BaseModel

class AIJobV1(BaseModel):
    job_name: str
    data: bytes

class AIJobV2(BaseModel): job_name: str data: bytes config: dict
from fastapi import FastAPI

app = FastAPI()

@app.post("/v1/ai-job")
def ai_job_v1(job: AIJobV1):
    ...

@app.post("/v2/ai-job") def ai_job_v2(job: AIJobV2): ...
Menerapkan AI ke Produksi dengan FastAPI

Alasan memperbarui versi endpoint

 

  • Perubahan pemutus pada skema
  • Perubahan pada fungsi dasar
    • Kode model diperbarui
    • Himpunan data pelatihan model diperbarui
    • Pra/pasca-pemrosesan diperbarui
Menerapkan AI ke Produksi dengan FastAPI

Iterasi dengan field opsional

 

  • Versioning tidak selalu wajib untuk iterasi
  • Field opsional dapat menambah data tanpa merusak skema
from pydantic import BaseModel

class AIJobV1(BaseModel):
    job_name: str
    data: bytes


from typing import Optional class AIJobV1(BaseModel): job_name: str data: bytes config: Optional[dict]
Menerapkan AI ke Produksi dengan FastAPI

Mendokumentasikan API dengan Swagger

 

 

  • Alat standar untuk dokumentasi API
    • Melacak endpoint dan versinya
    • Dibangun di atas metadata standar OpenAPI

 

Logo Swagger

Logo OpenAPI

Menerapkan AI ke Produksi dengan FastAPI

Swagger UI

URL Swagger Swagger UI

Menerapkan AI ke Produksi dengan FastAPI

Swagger UI untuk sebuah endpoint

FastAPI Swagger UI untuk endpoint

Menerapkan AI ke Produksi dengan FastAPI

Menggunakan field description FastAPI

from fastapi import FastAPI

app = FastAPI(
    description="AI Job API"
)

FastAPI Swagger UI dengan header deskripsi

Menerapkan AI ke Produksi dengan FastAPI

Ayo berlatih!

Menerapkan AI ke Produksi dengan FastAPI

Preparing Video For Download...