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ị? Show Khái niệm cơ bản về APIAPI (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ì
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 FastAPIYêu cầu sử dụng FastAPIFastAPI 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. 8 và 9
API Python đầu tiên của bạn với FastAPIBâ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ó
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ụ
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 0 là đủ, thì bây giờ chúng ta sẽ phải truyền tham số 1. Do đó, yêu cầu sẽ trông như sau. 2Như chúng tôi đã bao gồm đối số 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à 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 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ố 8Trong trường hợp này, nếu chúng ta truy cập 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ụ, 2, nó sẽ sử dụng nó và sẽ tiếp tục hoạt động bình thường, trả về 8Trả về các loại dữ liệu khác nhau với FastAPIPhầ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ụ 8Nế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 9 0Như 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 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ả 80 và 81. Trong mọi trường hợp, chúng tôi sẽ cần cài đặt 82Vì 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 5Như 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 FastAPINhư 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à 83. Ngoài ra, chúng ta phải cài đặt 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 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ả 85 và 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à 9 sẽ cung cấp cho bạn khi thực thi APIVí 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 đó 2Như 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 0 1Ngoà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 88, như trong hình sauNgoà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 89, như chúng ta thấy bên dướiNhư 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 90. Hãy xem nó hoạt động như thế nàoCách tạo API trong Python bằng FlaskCách tạo API với FlaskTrước hết, để tạo API trong Python bằng Flask, chúng ta phải cài đặt các gói 90 và 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 2Ngoà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 3Khi 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. ” 4Như 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 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 DELETECách truyền tham số cho API trong FlaskNhiề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 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 FastApiVí 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}. ” 5Trong trường hợp này, API của chúng tôi đang lấy tham số 1 từ URL yêu cầu, với hai tùy chọn
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. 01, API sẽ trả về 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ácTrả về các loại dữ liệu khác nhau với FlaskNhư 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 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 6Theo 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 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 8 9Cuố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 04 0Bâ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 FlaskTrướ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 3Vì 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 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 8 4Như 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ậnNhư 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
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 |