Có api cho python không?

Là một nhà khoa học dữ liệu hoặc kỹ sư dữ liệu, nhiều khi chúng tôi phải chia sẻ công việc của mình để bất kỳ ai khác trong công ty có thể sử dụng các quy trình hoặc mô hình mà chúng tôi đã tạo. Rõ ràng, chia sẻ tập lệnh không phải là một tùy chọn, vì mọi người sẽ cần có những chương trình giống như bạn. Đây là lúc các API phát huy tác dụng. Hôm nay, chúng ta sẽ xem chúng là gì và cách tạo API trong Python. Nghe có vẻ thú vị?

Khái niệm cơ bản về API

API [Giao diện lập trình ứng dụng] cho phép hai hệ thống máy tính tương tác với nhau. Ví dụ: nếu chúng ta tạo tự động hóa tạo báo cáo và gửi báo cáo qua email, việc gửi email đó không được thực hiện thủ công, chính tập lệnh sẽ thực hiện việc đó. Để làm điều này, Python [hoặc ngôn ngữ chúng tôi sử dụng], phải yêu cầu Gmail gửi email đó, kèm theo báo cáo đó cho một số người nhất định. Cách thực hiện là thông qua API, trong trường hợp này là Gmail API

Ok, bây giờ bạn đã biết API là gì, hãy xem những phần chính của API là gì

  • Giao thức truyền HTTP. đó là cách chính để truyền đạt thông tin trên web. Có nhiều phương pháp khác nhau, mỗi phương pháp được sử dụng cho các vấn đề khác nhau
    • ĐƯỢC. phương pháp này cho phép lấy thông tin từ cơ sở dữ liệu hoặc từ một quy trình
    • BƯU KIỆN. cho phép bạn gửi thông tin, chẳng hạn như để thêm thông tin vào cơ sở dữ liệu hoặc chuyển đầu vào của mô hình máy học
    • ĐẶT. cập nhật thông tin. Nó thường được sử dụng để quản lý thông tin trong cơ sở dữ liệu
    • XÓA BỎ. phương pháp này được sử dụng để xóa thông tin khỏi cơ sở dữ liệu
  • url. là địa chỉ nơi chúng tôi có thể tìm thấy API của mình. Về cơ bản URL này sẽ bao gồm ba phần
    • giao thức. giống như bất kỳ địa chỉ nào, nó có thể là
      from fastapi import FastAPI
      app =from fastapi import FastAPI
      app = FastAPI[]
      
      @app.get["/my-first-api"]
      def hello[name: str]:
        return {'Hello ' + name + '!'} 
      5 hoặc
      from fastapi import FastAPI
      app =from fastapi import FastAPI
      app = FastAPI[]
      
      @app.get["/my-first-api"]
      def hello[name: str]:
        return {'Hello ' + name + '!'} 
      6
    • Miền. máy chủ mà nó được lưu trữ, đi từ giao thức đến cuối. com hoặc bất cứ thứ gì kết thúc url có. Ví dụ: trên trang web của tôi, tên miền là
      from fastapi import FastAPI
      app =from fastapi import FastAPI
      app = FastAPI[]
      
      @app.get["/my-first-api"]
      def hello[name: str]:
        return {'Hello ' + name + '!'} 
      7
    • điểm cuối. giống như một trang web có nhiều trang [/blog], [/pháp lý], cùng một API có thể bao gồm nhiều điểm và mỗi điểm làm những việc khác nhau. Khi tạo API của chúng tôi bằng Python, chúng tôi sẽ chỉ ra các điểm cuối, vì vậy chúng tôi phải đảm bảo rằng mỗi điểm cuối đại diện cho những gì API đằng sau nó làm

Ok, bây giờ chúng ta đã biết API là gì và các phần chính của nó là gì, hãy xem cách chúng ta có thể tạo API bằng Python. Chúng ta hãy đi đến đó

Có nhiều cách khác nhau để tạo API trong Python, cách được sử dụng nhiều nhất là FastAPI và Flask. Vì vậy, tôi sẽ giải thích cách hoạt động của cả hai, để bạn có thể sử dụng cách tạo API trong Python mà bạn thích nhất. Hãy bắt đầu với FastAPI

Cách tạo API trong Python với FastAPI

Yêu cầu sử dụng FastAPI

FastAPI là một cách tạo API bằng Python ra mắt vào cuối năm 2018. Nó rất nhanh, mặc dù nó chỉ có thể được sử dụng với Python 3. 6+ [theo tôi đây không phải là vấn đề, nhưng nó rất quan trọng]

Để sử dụng nó, bạn phải cài đặt hai thư viện.

from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
8 và
from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
9

pip install fastapi
pip install uvicorn

API Python đầu tiên của bạn với FastAPI

Bây giờ chúng tôi đã cài đặt các gói, chúng tôi chỉ cần tạo một tệp bằng Python nơi chúng tôi sẽ xác định API của mình. Trong tệp này, chúng tôi phải tạo một ứng dụng, nơi chúng tôi sẽ bao gồm các API, với các điểm cuối, tham số, v.v.

Khi chúng tôi có ứng dụng, đó là nơi chúng tôi xác định thông tin mà API yêu cầu. điểm cuối, phương thức HTTP, đối số đầu vào và những gì API sẽ thực hiện đằng sau nó

from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[]:
  return {"Hello world!"}

Với điều này, chúng tôi đã tạo một API rất đơn giản, chỉ cần trả về “Xin chào thế giới. ”. Như bạn sẽ thấy, trong một vài dòng chúng ta đã định nghĩa. phương thức [get], điểm cuối [“/”] và chức năng mà API này sẽ chạy

Chúng tôi thậm chí có thể chuyển các đối số tới API của mình để nó sử dụng trong chức năng của nó. Bất cứ khi nào chúng ta chuyển một đối số cho hàm của mình, chúng ta phải chỉ ra loại dữ liệu mà nó phải là [số, văn bản, v.v. ]

Quan trọng. FastAPI thực hiện kiểm tra xem loại dữ liệu mà chúng tôi chuyển đến nó trong lệnh gọi có phải là loại dữ liệu mà chúng tôi đã chỉ định hay không. Điều này là cần thiết để đảm bảo rằng API của chúng tôi hoạt động bình thường và đó là điều mà các khung tạo API khác [như Flask] không có

Hãy xem cách nó hoạt động trong một ví dụ

from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 

Bây giờ, khi chúng tôi yêu cầu API này, chúng tôi sẽ phải chuyển tham số tên cho nó để nó hoạt động. Đó là, nếu trước đây chúng ta chỉ cần chuyển đến

from fastapi import FastAPI

app = FastAPI[]

@app.get["/my-first-api"]
def hello[name = None]:

    if name is None:
        text = 'Hello!'

    else:
        text = 'Hello ' + name + '!'

    return text
0 là đủ, thì bây giờ chúng ta sẽ phải truyền tham số
from fastapi import FastAPI

app = FastAPI[]

@app.get["/my-first-api"]
def hello[name = None]:

    if name is None:
        text = 'Hello!'

    else:
        text = 'Hello ' + name + '!'

    return text
1. Do đó, yêu cầu sẽ trông như sau.
from fastapi import FastAPI

app = FastAPI[]

@app.get["/my-first-api"]
def hello[name = None]:

    if name is None:
        text = 'Hello!'

    else:
        text = 'Hello ' + name + '!'

    return text
2

Như chúng tôi đã bao gồm đối số

from fastapi import FastAPI

app = FastAPI[]

@app.get["/my-first-api"]
def hello[name = None]:

    if name is None:
        text = 'Hello!'

    else:
        text = 'Hello ' + name + '!'

    return text
1, đối số này là bắt buộc. nếu nó không được bao gồm trong yêu cầu, nó sẽ không hoạt động. Tuy nhiên, chúng tôi có thể muốn chuyển các đối số tùy chọn

Đối với điều này, chúng tôi phải chỉ ra đối số là

from fastapi import FastAPI

app = FastAPI[]

@app.get["/my-first-api"]
def hello[name = None]:

    if name is None:
        text = 'Hello!'

    else:
        text = 'Hello ' + name + '!'

    return text
4 và FastAPI sẽ diễn giải nó đúng cách. Ví dụ. chúng tôi sẽ tạo một API mà bạn có thể chuyển hoặc không chuyển biến
from fastapi import FastAPI

app = FastAPI[]

@app.get["/my-first-api"]
def hello[name = None]:

    if name is None:
        text = 'Hello!'

    else:
        text = 'Hello ' + name + '!'

    return text
1. Nếu bạn vượt qua nó, nó sẽ trả về “Xin chào {name}. ” và, nếu không, chỉ đơn giản là “Xin chào. ”

________số 8

Trong trường hợp này, nếu chúng ta truy cập

from fastapi import FastAPI

app = FastAPI[]

@app.get["/my-first-api"]
def hello[name = None]:

    if name is None:
        text = 'Hello!'

    else:
        text = 'Hello ' + name + '!'

    return text
0, API sẽ được thực thi chính xác và nó sẽ trả về “Xin chào. ”, trong khi nếu chúng ta chuyển tham số, ví dụ,
from fastapi import FastAPI

app = FastAPI[]

@app.get["/my-first-api"]
def hello[name = None]:

    if name is None:
        text = 'Hello!'

    else:
        text = 'Hello ' + name + '!'

    return text
2, nó sẽ sử dụng nó và sẽ tiếp tục hoạt động bình thường, trả về
from fastapi import FastAPI

app = FastAPI[]

@app.get["/my-first-api"]
def hello[name = None]:

    if name is None:
        text = 'Hello!'

    else:
        text = 'Hello ' + name + '!'

    return text
8

Trả về các loại dữ liệu khác nhau với FastAPI

Phần lớn các lần API thường trả về văn bản [dự đoán, dữ liệu, v.v. ], mặc dù nhiều khi nó có thể trả về các loại dữ liệu khác, chẳng hạn như DataFrame hoặc hình ảnh chẳng hạn

Khi nói đến các đối tượng “bình thường”, như DataFrame, FastAPI sẽ chuyển đổi trực tiếp thành tệp JSON. Ví dụ

from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
8

Nếu chúng tôi yêu cầu điểm cuối này, chúng tôi sẽ nhận được phản hồi sau

from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
9
from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
0

Như bạn có thể thấy, API nhanh chuyển đổi Khung dữ liệu trực tiếp thành đối tượng JSON. Tuy nhiên, còn hình ảnh hoặc video thì sao?

FastAPI dựa trên

from fastapi import FastAPI

app = FastAPI[]

@app.get["/my-first-api"]
def hello[name = None]:

    if name is None:
        text = 'Hello!'

    else:
        text = 'Hello ' + name + '!'

    return text
9, vì vậy để phản hồi bằng hình ảnh hoặc biểu tượng, chúng tôi có thể sử dụng cả
from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
80 và
from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
81. Trong mọi trường hợp, chúng tôi sẽ cần cài đặt
from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
82

Vì vậy, nếu chúng tôi muốn hiển thị một hình ảnh trong API của mình, ứng dụng FastAPI của chúng tôi sẽ trông như thế này

from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
5

Như chúng ta có thể thấy, việc tạo API trong Python bằng FastAPI rất đơn giản và rất linh hoạt. Nhưng làm cách nào để kiểm tra xem API của tôi có hoạt động bình thường không?

Kiểm tra hoạt động của API FastAPI

Như tôi đã nói ở đầu phần này, để tạo API trong FastAPI, chúng ta phải đưa mã của mình vào tệp Python, tốt nhất là

from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
83. Ngoài ra, chúng ta phải cài đặt
from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
9. Tính đến điều này, chúng tôi có thể chạy API của mình theo cách rất đơn giản, với đoạn mã sau

from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
8

Điều này sẽ chạy ứng dụng của chúng tôi và chúng tôi sẽ có thể truy cập API của mình, cả ở cấp trình duyệt và bằng cách thực hiện cuộc gọi từ máy tính của chúng tôi. API chưa được tải lên ở bất cứ đâu, vì vậy nó sẽ có thể truy cập được từ localhost. Bạn có thể truy cập máy chủ cục bộ trong cả

from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
85 và
from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
86, mặc dù bạn sẽ phải thực hiện điều đó trên cùng một cổng đang chạy API. Theo tôi, để tìm hiểu, cách dễ nhất là sử dụng liên kết mà
from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
9 sẽ cung cấp cho bạn khi thực thi API

Ví dụ, hãy xem cách tôi yêu cầu một API bao gồm tất cả các điểm cuối mà tôi đã giải thích trước đó

from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
2

Như chúng ta có thể thấy, API của chúng tôi đang trả lại hình ảnh cho chúng tôi một cách chính xác. Bây giờ hãy thử điểm cuối đầu tiên mà chúng tôi đã tạo

from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[]:
  return {"Hello world!"}
0
from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[]:
  return {"Hello world!"}
1

Ngoài ra, FastAPI tự tạo tài liệu ở dạng vênh vang, mà chúng ta có thể truy cập từ đường dẫn, tài liệu. Trong trường hợp của tôi, vì API được hiển thị trong, tôi có thể truy cập vào

from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
88, như trong hình sau

Ngoài ra, còn có một cách khác để ghi lại API, với OpenAPI, có thể truy cập thông qua điểm cuối

from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
89, như chúng ta thấy bên dưới

Như bạn có thể thấy, tạo API với FastAPI rất đơn giản, rất nhanh và trực quan. Tuy nhiên, FastAPI không phải là cách duy nhất để tạo API trong Python. Một cách khác để làm điều đó là sử dụng

from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
90. Hãy xem nó hoạt động như thế nào

Cách tạo API trong Python bằng Flask

Cách tạo API với Flask

Trước hết, để tạo API trong Python bằng Flask, chúng ta phải cài đặt các gói

from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
90 và
from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
92. Khi chúng tôi đã cài đặt các thư viện, chúng tôi phải tạo máy chủ của mình, như chúng tôi đã làm với FastAPI. Chúng ta có thể làm điều này với lệnh sau

from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[]:
  return {"Hello world!"}
2

Ngoài ra, chúng tôi sẽ phải chỉ ra rằng máy chủ sẽ khởi chạy cùng với cổng nơi nó sẽ được khởi chạy. Để làm điều này, ở cuối ứng dụng của chúng tôi, chúng tôi phải bao gồm đoạn mã sau

from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[]:
  return {"Hello world!"}
3

Khi chúng tôi đã tạo máy chủ của mình và chúng tôi đã chỉ định cổng nào sẽ chạy, chúng tôi có thể bắt đầu tạo API của mình. Để tạo API trong Python bằng Flask, chúng ta phải chỉ ra. điểm cuối, phương thức và chức năng sẽ được thực thi trên điểm cuối đó. Hãy xem một ví dụ với API chỉ trả về văn bản “Xin chào thế giới. ”

from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[]:
  return {"Hello world!"}
4

Như bạn có thể thấy, trong trường hợp này, chúng tôi xác định cả điểm cuối và phương thức khi chúng tôi xác định đường dẫn máy chủ với

from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
93 Trong trường hợp của tôi, tôi đã xác định phương thức GET, mặc dù nó không cần thiết, vì theo mặc định, Flask sử dụng . Do đó, chỉ bắt buộc phải xác định phương thức nếu chúng ta sẽ sử dụng một phương thức khác với GET, nghĩa là nếu chúng ta sử dụng POST, PUT hoặc DELETE

Cách truyền tham số cho API trong Flask

Nhiều lần, các API của chúng tôi yêu cầu tham số. Một ví dụ rõ ràng là khi chúng tôi đưa một mô hình vào sản xuất. mỗi đầu vào của mô hình phải là một tham số của API của chúng tôi

Theo nghĩa đó, chúng tôi có thể chuyển các đối số tới API của mình trong Flask khi thực hiện yêu cầu. Trong trường hợp này, để có thể sử dụng chúng trong chức năng, trước tiên chúng ta phải trích xuất chúng từ yêu cầu, điều mà chúng ta sẽ thực hiện với

from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
94. Vâng, điều này hơi khác so với cách nó được thực hiện trong FastAPI và, theo tôi, trong Flask thì cồng kềnh hơn trong FastApi

Ví dụ, hãy xem cách tạo một API nhận tham số tên và tạo bản in “Xin chào {tên}. ”

from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[]:
  return {"Hello world!"}
5

Trong trường hợp này, API của chúng tôi đang lấy tham số

from fastapi import FastAPI

app = FastAPI[]

@app.get["/my-first-api"]
def hello[name = None]:

    if name is None:
        text = 'Hello!'

    else:
        text = 'Hello ' + name + '!'

    return text
1 từ URL yêu cầu, với hai tùy chọn

  1. Ví dụ: nếu tham số tên chưa được truyền.
    from fastapi import FastAPI
    
    app = FastAPI[]
    
    @app.get["/my-first-api"]
    def hello[name = None]:
    
        if name is None:
            text = 'Hello!'
    
        else:
            text = 'Hello ' + name + '!'
    
        return text
    0 tham số tên sẽ là Không có, vì vậy API sẽ trả về
    from fastapi import FastAPI
    app =from fastapi import FastAPI
    app = FastAPI[]
    
    @app.get["/my-first-api"]
    def hello[name: str]:
      return {'Hello ' + name + '!'} 
    97
  2. Nếu tham số
    from fastapi import FastAPI
    
    app = FastAPI[]
    
    @app.get["/my-first-api"]
    def hello[name = None]:
    
        if name is None:
            text = 'Hello!'
    
        else:
            text = 'Hello ' + name + '!'
    
        return text
    1 đã được chuyển, ví dụ như
    from fastapi import FastAPI
    
    app = FastAPI[]
    
    @app.get["/my-first-api"]
    def hello[name = None]:
    
        if name is None:
            text = 'Hello!'
    
        else:
            text = 'Hello ' + name + '!'
    
        return text
    2, thì API sẽ sử dụng tham số đó để tạo phản hồi, trong trường hợp này sẽ là
    from fastapi import FastAPI
    
    app = FastAPI[]
    
    @app.get["/my-first-api"]
    def hello[name = None]:
    
        if name is None:
            text = 'Hello!'
    
        else:
            text = 'Hello ' + name + '!'
    
        return text
    8

Quan trọng. Flask không thực hiện đánh giá các tham số yêu cầu, vì vậy chúng ta sẽ phải tự đánh giá, nếu không nó sẽ được sử dụng trong hàm. Ví dụ: nếu chúng tôi yêu cầu URL.

from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
01, API sẽ trả về
from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
02, vì nó chưa xác minh rằng giá trị của tham số phải là một chuỗi chứ không phải số hoặc bất kỳ loại đối tượng nào khác

Trả về các loại dữ liệu khác nhau với Flask

Như chúng ta có thể thấy, cho đến nay chúng ta đã trả về các chuỗi văn bản. Tuy nhiên, các API thường trả về dữ liệu ở định dạng JSON. Để làm điều này, chúng ta phải sử dụng mô-đun

from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
03. Hãy xem một ví dụ về cách trả về chuỗi trước đó, nhưng lần này ở định dạng JSON

from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[]:
  return {"Hello world!"}
6

Theo cách tương tự, chúng ta có thể trả về một loại đối tượng khác, chẳng hạn như tập dữ liệu. Hãy xem một ví dụ sẽ như thế nào, tạo một điểm cuối mới trả về bộ dữ liệu mống mắt thông qua một yêu cầu GET

from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[]:
  return {"Hello world!"}
7

Để truyền một DataFrame, trước tiên chúng ta phải chuyển đổi nó thành một đối tượng có thể được chuyển đổi thành JSON, giống như một từ điển. Với điều này, chúng tôi sẽ có một câu trả lời như sau

from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[]:
  return {"Hello world!"}
8
from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[]:
  return {"Hello world!"}
9

Cuối cùng, bạn có thể gửi hình ảnh qua API bằng Python được tạo bằng Flask không? . Thực ra cách làm cũng rất giống nhau, chỉ khác là trong trường hợp này chúng ta phải lưu nội dung bên trong chính cái bình [hoặc thư mục nào cũng được] và gửi đi bằng hàm

from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
04

from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
0

Bây giờ chúng ta đã biết cách gửi các loại nội dung khác nhau bằng API Python được tạo bằng Flask, hãy xem cách kiểm tra xem API của chúng ta có hoạt động chính xác không

Kiểm tra chức năng của API Flask

Trước khi thực thi API Python được tạo trong Flask, chúng tôi phải kiểm tra để đảm bảo rằng chúng tôi đang hiển thị nó trên một cổng. Đối với điều này, chúng tôi phải bao gồm mã mà tôi đã đề cập và tôi đặt bên dưới

from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[]:
  return {"Hello world!"}
3

Vì vậy, để chạy ứng dụng, chúng ta chỉ cần chạy tệp Python nơi chúng ta đã tạo API. Trong trường hợp của tôi, lệnh như sau

from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
2

Điều này sẽ tạo ra một mã như sau

Như bạn có thể thấy, API của chúng tôi sẽ chạy trên máy chủ cục bộ của chúng tôi, trong cổng mà chúng tôi đã chỉ định [trong trường hợp của tôi là cổng 8000]

Vì vậy, để kiểm tra API, chúng ta chỉ cần truy cập trình duyệt của mình và đi đến các điểm cuối hoặc trực tiếp thực hiện các yêu cầu từ Python

from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[]:
  return {"Hello world!"}
8
from fastapi import FastAPI
app =from fastapi import FastAPI
app = FastAPI[]

@app.get["/my-first-api"]
def hello[name: str]:
  return {'Hello ' + name + '!'} 
4

Như chúng ta có thể thấy, API đang trả lại nội dung chính xác

Chúng tôi cũng có thể thêm tài liệu Swagger và OpenApi vào API của mình trong Flask, mặc dù làm như vậy sẽ tẻ nhạt hơn một chút so với trong FastAPI. Trên thực tế, điều này sẽ tạo nên một bài đăng, vì vậy tôi liên kết bạn với bài đăng này được viết bởi Sean Bradley, trong trường hợp bạn quan tâm

Phần kết luận

Như bạn có thể thấy, cả FastApi và Flask đều sử dụng việc tạo API đều rất đơn giản, mặc dù chúng có những điểm khác biệt nhất định

  • Flask là một khung cho phép bạn tạo toàn bộ ứng dụng web
  • FastAPI thực hiện xác thực các loại dữ liệu mà chúng tôi thực hiện, cũng như toàn bộ quy trình tài liệu, giúp chúng tôi tiết kiệm rất nhiều thời gian so với việc chúng tôi thực hiện trong Flask

Vì vậy, khuyến nghị của tôi là, nếu bạn chỉ muốn tạo API, hãy làm điều đó trong FastAPI, vì nó chắc chắn sẽ nhanh hơn. Tuy nhiên, nếu bạn muốn tạo một giao diện người dùng hoàn chỉnh [mặt trước và mặt sau] và API là một phần của hệ sinh thái, tôi khuyên bạn nên sử dụng Flask, vì mọi thứ sẽ nằm trong cùng một khuôn khổ và sẽ dễ dàng hơn nhiều cho bạn

Trong mọi trường hợp, việc tạo API bằng Python là một việc rất đơn giản và cơ bản đối với bất kỳ người chuyên dụng nào trong thế giới dữ liệu. Để thực thi các quy trình hoặc để sản xuất các thuật toán Machine Learning, chắc chắn các API là một phần của quy trình đó

Như mọi khi, tôi hy vọng bạn tìm thấy bài viết thú vị. Nếu vậy, tôi khuyên bạn nên đăng ký để được thông báo mỗi khi tôi tải lên một bài đăng mới. Trong mọi trường hợp, hẹn gặp lại bạn ở phần tiếp theo

Python có API không?

Python có một thư viện rộng lớn và có thể mở rộng, chứa rất nhiều tính năng và gói cho các mục đích sử dụng khác nhau. Một trong những gói đó được gọi là thư viện yêu cầu, dùng để thực hiện lệnh gọi API .

Làm cách nào để lấy API trong Python?

Thực hiện lệnh gọi API của bạn .
def get_data[bản thân, api]
phản ứng = yêu cầu. nhận [f"{api}"]
nếu phản hồi. status_code == 200
print["lấy dữ liệu thành công"]
bản thân. formatted_print[phản hồi. json[]]
print[f"Xin chào mọi người, có {response. status_code} lỗi với yêu cầu của bạn"]

Python có API REST không?

Một trong những cách phổ biến nhất để xây dựng API là kiểu kiến ​​trúc REST. Python cung cấp một số công cụ tuyệt vời không chỉ để lấy dữ liệu từ API REST mà còn để xây dựng API REST Python của riêng bạn .

Làm cách nào để thêm API trong Python?

Các bước kết nối và gọi API bằng Python .
Nhập thư viện cần thiết. Để kết nối với API và thực hiện các hành động trên đó, chúng ta cần nhập thư viện yêu cầu Python vào môi trường. .
Thực hiện một hành động để kết nối với API. Ở đây, chúng tôi đã sử dụng lệnh GET để kết nối với API như hình–.
In mã phản hồi

Chủ Đề