Tạo API với Python
Ngày nay, Python là một trong những ngôn ngữ lập trình phổ biến và dễ tiếp cận nhất. Năm 2019, nó được xếp hạng thứ ba trong xếp hạng TIOBE. Nhiều chuyên gia cho rằng 3-4 năm nữa nó sẽ vượt C và Java để dẫn đầu bảng xếp hạng Show
Dựa trên điều này, sẽ không ngạc nhiên nếu bạn sử dụng Python cho dự án tương tác API tiếp theo của mình. Trong bài viết này, chúng ta sẽ nói về sự khôn ngoan của việc sử dụng API và tại sao Python sẽ giúp ích rất nhiều trong nhiệm vụ này Duyệt qua danh sách API miễn phí tốt nhấtAPI REST là gì (từ góc độ Python)Đầu tiên, hãy xác định một API API (Giao diện lập trình ứng dụng) là một bộ quy tắc được chia sẻ bởi một dịch vụ cụ thể. Các quy tắc này xác định định dạng nào và bộ lệnh nào mà ứng dụng của bạn có thể truy cập vào dịch vụ, cũng như dữ liệu nào mà dịch vụ này có thể trả về trong phản hồi. API hoạt động như một lớp giữa ứng dụng của bạn và dịch vụ bên ngoài. Bạn không cần biết cấu trúc bên trong và các tính năng của dịch vụ, bạn chỉ cần gửi một lệnh đơn giản nhất định và nhận dữ liệu theo định dạng định sẵn API REST (Chuyển trạng thái đại diện) là API sử dụng các yêu cầu HTTP để liên lạc với các dịch vụ web Nó phải tuân thủ các ràng buộc nhất định. Dưới đây là một số trong số họ
Một danh sách đầy đủ các ràng buộc bạn có thể xem tại đây Từ phía Python, API REST có thể được xem như một nguồn dữ liệu nằm trên một địa chỉ Internet có thể được truy cập theo một cách nhất định thông qua các thư viện nhất định Các loại yêu cầuCác loại Yêu cầu hoặc Phương thức Yêu cầu HTTP mô tả hành động mà chúng tôi sẽ thực hiện bằng cách tham khảo API Tổng cộng, có bốn loại hành động chính
điều kiện tiên quyếtĐể bắt đầu làm việc với API REST thông qua Python, bạn sẽ cần kết nối thư viện để gửi yêu cầu HTTP Sự lựa chọn của thư viện phụ thuộc vào phiên bản Python Nếu bạn sử dụng Python 2, chúng tôi khuyên bạn nên sử dụng unirest vì tính đơn giản, tốc độ và khả năng hoạt động với các yêu cầu đồng bộ và không đồng bộ Nếu bạn làm việc với Python 3, thì chúng tôi khuyên bạn nên dừng lựa chọn đối với các yêu cầu là tiêu chuẩn thực tế để thực hiện các yêu cầu HTTP trong Python Hơn nữa trong hướng dẫn của chúng tôi, chúng tôi sẽ sử dụng Python 3. 6 cùng với thư viện yêu cầu. Đó là cách triển khai yêu cầu GET sẽ như thế nào khi sử dụng các yêu cầu import requests response = requests.get('https://google.com/') print(response) >> Yêu cầu trả về Phản hồi, một đối tượng mạnh mẽ để kiểm tra kết quả của yêu cầu. Sử dụng Phản hồi, bạn có thể kiểm tra các tiêu đề và nội dung của phản hồi, lấy từ điển có dữ liệu từ JSON trong phản hồi và cũng xác định mức độ truy cập của chúng tôi vào máy chủ bằng mã phản hồi từ nó. Trong ví dụ của chúng tôi, mã phản hồi là 200, có nghĩa là yêu cầu đã thành công. Chúng tôi sẽ nghiên cứu các mã phản hồi và giá trị của chúng chi tiết hơn một chút Mã trạng tháiMã trạng thái được trả về cùng với phản hồi sau mỗi cuộc gọi đến máy chủ. Họ mô tả ngắn gọn kết quả của cuộc gọi. Có một số lượng lớn mã trạng thái, chúng tôi cung cấp những mã mà bạn thường gặp nhất
Thư viện yêu cầu có một số thuộc tính hữu ích để làm việc với mã trạng thái. Ví dụ: bạn có thể chỉ cần xem trạng thái của mã phản hồi bằng cách truy cập. status_code print(response.status_code) >>> 200 Đó chưa phải là tất cả. Bạn có thể sử dụng thể hiện Phản hồi trong biểu thức điều kiện. Nó sẽ đánh giá là Đúng nếu mã trạng thái nằm trong khoảng từ 200 đến 400 và Sai nếu không if response: print('Request is successful.') else: print('Request returned an error.') điểm cuốiĐể làm việc với API REST, điều quan trọng là phải hiểu Điểm cuối là gì Thông thường, Điểm cuối là một địa chỉ cụ thể (ví dụ: https. // thời tiết ở london. com/forecast), bằng cách đề cập đến việc bạn có quyền truy cập vào một số tính năng/dữ liệu nhất định (trong trường hợp của chúng tôi – dự báo thời tiết cho Luân Đôn). Thông thường, tên (địa chỉ) của điểm cuối tương ứng với chức năng mà nó cung cấp Để tìm hiểu thêm về điểm cuối, chúng ta sẽ xem xét ví dụ về API đơn giản trong dịch vụ RapidAPI. Dịch vụ này là một Trung tâm API cung cấp khả năng truy cập hàng nghìn API khác nhau. Một ưu điểm khác của RapidAPI là bạn có thể truy cập các điểm cuối và kiểm tra hoạt động của API trực tiếp trong phần của nó trong dịch vụ RapidAPI Hãy lấy ví dụ về API Dino Ipsum. API này được sử dụng để tạo bất kỳ số lượng văn bản giữ chỗ Lorem Ipsum nào. Nó rất hữu ích khi bạn tạo nguyên mẫu hoặc thử nghiệm giao diện ứng dụng của mình và muốn điền vào đó bất kỳ nội dung ngẫu nhiên nào Để tìm phần Dino Ipsum API, hãy nhập tên của nó vào hộp tìm kiếm trong dịch vụ RapidAPI hoặc chuyển đến danh mục “Khác” từ danh sách “Tất cả danh mục” và chọn API này từ danh sách. Dino Ipsum API thông qua RapidAPI là miễn phí, vì vậy bạn có thể nhận bao nhiêu văn bản giữ chỗ tùy thích Khi bạn chọn Dino Ipsum API, trang đầu tiên bạn sẽ thấy là tiểu mục Điểm cuối API. Điều này bao gồm hầu hết các thông tin cần thiết để bắt đầu. Tiểu mục Điểm cuối API bao gồm điều hướng, danh sách điểm cuối (chỉ một điểm cho API này), tài liệu về điểm cuối hiện được chọn và đoạn mã (có sẵn bằng 8 ngôn ngữ lập trình khác nhau) để giúp bạn bắt đầu với mã của mình Chúng tôi sẽ kiểm tra điểm cuối duy nhất mà API này có – danh sách khủng long, trả về một lượng văn bản giữ chỗ nhất định, tùy thuộc vào các tham số đã nhập. Hiện tại chúng tôi đang thực hành với Python, chúng tôi muốn lấy một đoạn mã Python và kiểm tra nó trong ứng dụng của chúng tôi. Điền vào các tham số bắt buộc (định dạng=văn bản, từ=10, đoạn văn=1) và đây là đoạn mã của chúng tôi response = unirest.get("https://alexnormand-dino-ipsum.p.rapidapi.com/?format=text&words=10¶graphs=1", headers={ "X-RapidAPI-Host": "alexnormand-dino-ipsum.p.rapidapi.com", "X-RapidAPI-Key": "4xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" } ) Để sử dụng nó với Python 3. 6, chúng ta cần thay đổi unirest để yêu cầu. Vì vậy, chúng tôi nhận được một ứng dụng như vậy import requests words = 30 paragraphs = 1 formats = 'text' response = requests.get(f"https://alexnormand-dino-ipsum.p.rapidapi.com/?format={formats}&words={words}¶graphs={paragraphs}", headers={ "X-RapidAPI-Host": "alexnormand-dino-ipsum.p.rapidapi.com", "X-RapidAPI-Key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" } ) print(response.text) Ứng dụng của chúng tôi sẽ gọi điểm cuối, được đặt tại https. // alexnormand-dino-ipsum. p. nhanh chóng. com/ và sẽ in cho chúng tôi văn bản giữ chỗ đẹp mắt này print(response.status_code) >>> 2000Duyệt API Nhận phản hồi JSON từ yêu cầu APIThường thì REST API trả về một phản hồi ở định dạng JSON để dễ xử lý thêm. Thư viện yêu cầu có một tiện ích. json() cho trường hợp này để chuyển đổi JSON thành đối tượng Python API Dino Ipsum vốn đã quen thuộc sẽ giúp chúng tôi kiểm tra chức năng này. Chúng tôi có thể nhận được JSON từ nó trong phản hồi nếu chúng tôi chỉ định tham số format = JSON khi truy cập điểm cuối danh sách khủng long import requests params = {"words": 10, "paragraphs": 1, "format": "json"} response = requests.get(f"https://alexnormand-dino-ipsum.p.rapidapi.com/", params=params, headers={ "X-RapidAPI-Host": "alexnormand-dino-ipsum.p.rapidapi.com", "X-RapidAPI-Key": "4xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" } ) print (type(response.json())) print(response.json()) >>> Lưu ý rằng lần này chúng tôi không chỉ định các tham số truy vấn trong URL mà trong đối số params của hàm print(response.status_code) >>> 2001. Định dạng truyền tham số như vậy thậm chí còn thích hợp hơn Cách bắt đầu sử dụng API với PythonĐã xử lý các sắc thái khi làm việc với API trong Python, chúng ta có thể tạo hướng dẫn từng bước 1. Nhận khóa APIKhóa API (thường) là một chuỗi ký tự và số duy nhất. Để bắt đầu làm việc với hầu hết các API – bạn phải đăng ký và nhận khóa API. Bạn sẽ cần thêm khóa API vào mỗi yêu cầu để API có thể nhận dạng bạn. Lấy ví dụ về RapidAPI – bạn có thể chọn phương thức đăng ký thuận tiện cho mình. Đây có thể là tên người dùng, email và mật khẩu. Tài khoản Google, Facebook hoặc Github 2. Kiểm tra điểm cuối API với PythonKhi chúng tôi nhận được khóa API, chúng tôi có thể tham khảo các điểm cuối API (theo tài liệu) để kiểm tra xem mọi thứ có hoạt động như chúng tôi mong đợi không. Nếu chúng tôi làm việc với RapidAPI ngay sau khi đăng ký dịch vụ, chúng tôi có thể chuyển đến phần API cần thiết, đăng ký nếu cần và kiểm tra câu trả lời của các điểm cuối chúng tôi cần trực tiếp trên trang API. Tiếp theo, chúng ta có thể tạo một đoạn mã Python triển khai chức năng mà chúng ta vừa kiểm tra và nhanh chóng kiểm tra nó bằng IPython hoặc chỉ cần chèn nó vào ứng dụng Python của chúng ta 3. Tạo ứng dụng Python đầu tiên của bạn với APISau khi chúng tôi đã kiểm tra các điểm cuối và mọi thứ hoạt động như chúng tôi mong đợi, chúng tôi có thể bắt đầu tạo ứng dụng, bao gồm các cuộc gọi đến API cần thiết. Như chúng tôi đã đề cập, RapidAPI sẽ giúp chúng tôi ở đây. Trên trang API chúng tôi cần, chúng tôi có thể sử dụng khối Đoạn mã và lấy đoạn mã Python có quyền truy cập vào điểm cuối cần thiết. Chúng ta chỉ cần nhớ rằng nếu sử dụng Python 3, chúng ta cần thay thế thư viện đơn nhất bằng các yêu cầu trong đoạn mãBắt đầu ngay bây giờ Ví dụ API Python. Ứng dụng xem trái đất với API của NASACó trong tay các tính năng mạnh mẽ của Python và quyền truy cập vào nhiều loại API, chúng ta có thể làm điều gì đó tuyệt vời, chẳng hạn như khám phá độ sâu của không gian hoặc nhìn Trái đất từ quỹ đạo để bắt đầu. Đối với những tác vụ như vậy, chúng tôi sẽ cần API của NASA, có sẵn thông qua RapidAPI 1. Nhận khóa APIAPI của NASA miễn phí, trong trường hợp cơ bản, nó không yêu cầu đăng ký đặc biệt. Tuy nhiên, với việc sử dụng nhiều API, bạn nên đăng ký khóa dành cho nhà phát triển của NASA. Chúng tôi sẽ không sử dụng nó nhiều, vì vậy ngay sau khi đăng ký với dịch vụ RapidAPI, chúng tôi sẽ nhận được khóa dịch vụ và điều này là đủ đối với chúng tôi. Bạn có thể đăng ký bằng cách nhấp vào nút Đăng ký trong menu RapidAPI Như chúng tôi đã đề cập, bạn có thể đăng ký theo bất kỳ cách thuận tiện nào 2. Kiểm tra điểm cuối API với PythonSau khi đăng ký, hãy truy cập trang API của NASA. Nhập tên của nó vào hộp tìm kiếm tại dịch vụ RapidAPI hoặc chuyển đến danh mục “Khoa học” từ danh sách “Tất cả danh mục” và chọn API này từ danh sách Chúng tôi quan tâm đến điểm cuối print(response.status_code) >>> 2002, cung cấp danh sách các tên ảnh Trái đất được chụp bởi máy ảnh EPIC của NASA trên tàu vũ trụ NOAA DSCOVR. Theo mặc định, nó cung cấp những bức ảnh gần đây nhất. Nếu muốn, bạn cũng có thể chỉ định ngày của ảnh trong tham số ngày. Chúng tôi cần những bức ảnh mới, vì vậy các điều kiện mặc định phù hợp với chúng tôi Với sự trợ giúp của khối Đoạn mã, chúng tôi nhận được mã chúng tôi cần. Vì chúng tôi sử dụng Python 3, chúng tôi cần thay thế thư viện unirest trong đoạn trích bằng các yêu cầu. Vì vậy, đây là đoạn trích cuối cùng của chúng tôi print(response.status_code) >>> 2000 Phương thức print(response.status_code) >>> 2003 trả về một từ điển Python với danh sách tên và thuộc tính của ảnh. Rõ ràng, mọi thứ hoạt động tốt và chúng ta có thể bắt đầu viết ứng dụng của mình. Tạo ứng dụng đầu tiên của bạn bằng API Với sự trợ giúp của dữ liệu với hình ảnh Trái đất, chúng ta có thể tạo ứng dụng nhỏ của riêng mình để tạo ra hình ảnh động về Trái đất dựa trên những bức ảnh mới nhất của NASA Chúng tôi sẽ cần thư viện skigage để thay đổi kích thước hình ảnh, cũng như imageio để tạo một gif động duy nhất dựa trên lựa chọn hình ảnh. Chúng ta có thể cài đặt chúng bằng lệnh print(response.status_code) >>> 2002 Chúng tôi cũng sẽ cần thư viện regex để tạo các biến riêng biệt với thông tin về năm, tháng, ngày của ảnh từ chuỗi ngày đầy đủ. Chúng tôi sẽ cần các biến này để tạo thành url của ảnh Trái đất ở định dạng. print(response.status_code) >>> 2004 Kết quả là, chúng tôi nhận được ứng dụng sau print(response.status_code) >>> 2004 Chúng tôi đã thu được một hình ảnh như vậy của Trái đất từ quỹ đạo. Một điểm khởi đầu tốt để khám phá không gian xa hơn Duyệt qua danh sách API miễn phí tốt nhất Phần kết luậnTrong bài viết này, chúng tôi đã bắt đầu sử dụng API REST trong Python và thực hiện nhất quán tất cả các bước cần thiết để tạo một ứng dụng Python sử dụng cơ hội gần như vô hạn của API Python có tốt để tạo API không?Python được sử dụng rộng rãi như một ngôn ngữ phía máy chủ. Các khung như Django và Flask giúp thiết kế các trang web hiệu quả trở nên đơn giản. Nó cũng được sử dụng để tạo API và mô hình Máy học . Python, kết hợp với trình quản lý gói pip làm cho nó trở nên hoàn hảo cho các dự án.
Làm cách nào để tạo API REST bằng Python?Cách tạo API RESTful bằng Python và Flask . NHẬN tất cả các ngôn ngữ lập trình được lưu trữ trong API NHẬN một phiên bản cụ thể của ngôn ngữ lập trình Lọc tài nguyên ngôn ngữ lập trình dựa trên trường năm xuất bản ĐĂNG, ĐẶT và XÓA một phiên bản ngôn ngữ lập trình Tôi có thể tạo API của riêng mình không?Tạo API RESTful của riêng bạn có thể là một cách tuyệt vời để xây dựng doanh nghiệp dựa trên dữ liệu bạn đã thu thập hoặc dịch vụ bạn đã tạo hoặc đó có thể chỉ là một dự án cá nhân thú vị cho phép bạn học một kỹ năng mới. Dưới đây là danh sách 20 hướng dẫn về cách thiết kế API REST của riêng bạn |