Python kết nối với api như thế nào?
Trong hướng dẫn này, chúng ta sẽ xem xét toàn diện cách tạo các yêu cầu HTTP bằng Yêu cầu Python và tìm hiểu cách sử dụng chức năng này để tích hợp với các API REST Show nội dung curl -X GET "http://api.open-notify.org/astros.json" { "number": 3, "message": "success", "people": [ { "craft": "ISS", "name": "Chris Cassidy" }, { "craft": "ISS", "name": "Anatoly Ivanishin" }, { "craft": "ISS", "name": "Ivan Vagner" } ] } import requests import requests response = requests.get("http://api.open-notify.org/astros.json") print(response) >>>> Response<200> response.content() # Return the raw bytes of the data payload response.text() # Return a string representation of the data payload response.json() # This method is convenient when the API returns JSON query = {'lat':'45', 'lon':'180'} response = requests.get('http://api.open-notify.org/iss-pass.json', params=query) print(response.json()) { 'message': 'success', 'request': { 'altitude': 100, 'datetime': 1590607799, 'latitude': 45.0, 'longitude': 180.0, 'passes': 5 }, 'response': [ {'duration': 307, 'risetime': 1590632341}, {'duration': 627, 'risetime': 1590637934}, {'duration': 649, 'risetime': 1590643725}, {'duration': 624, 'risetime': 1590649575}, {'duration': 643, 'risetime': 1590655408} ] } # Create a new resource response = requests.post('https://httpbin.org/post', data = {'key':'value'}) # Update an existing resource requests.put('https://httpbin.org/put', data = {'key':'value'}) print(response.headers["date"]) >>>> 'Wed, 11 June 2020 19:32:24 GMT' requests.get( 'https://api.github.com/user', auth=HTTPBasicAuth('username', 'password') ) { "number": 3, "message": "success", "people": [ { "craft": "ISS", "name": "Chris Cassidy" }, { "craft": "ISS", "name": "Anatoly Ivanishin" }, { "craft": "ISS", "name": "Ivan Vagner" } ] }0 { "number": 3, "message": "success", "people": [ { "craft": "ISS", "name": "Chris Cassidy" }, { "craft": "ISS", "name": "Anatoly Ivanishin" }, { "craft": "ISS", "name": "Ivan Vagner" } ] }1 Cách xử lý lỗi HTTP với yêu cầu Python{ "number": 3, "message": "success", "people": [ { "craft": "ISS", "name": "Chris Cassidy" }, { "craft": "ISS", "name": "Anatoly Ivanishin" }, { "craft": "ISS", "name": "Ivan Vagner" } ] }2 { "number": 3, "message": "success", "people": [ { "craft": "ISS", "name": "Chris Cassidy" }, { "craft": "ISS", "name": "Anatoly Ivanishin" }, { "craft": "ISS", "name": "Ivan Vagner" } ] }3 { "number": 3, "message": "success", "people": [ { "craft": "ISS", "name": "Chris Cassidy" }, { "craft": "ISS", "name": "Anatoly Ivanishin" }, { "craft": "ISS", "name": "Ivan Vagner" } ] }4 { "number": 3, "message": "success", "people": [ { "craft": "ISS", "name": "Chris Cassidy" }, { "craft": "ISS", "name": "Anatoly Ivanishin" }, { "craft": "ISS", "name": "Ivan Vagner" } ] }5 { "number": 3, "message": "success", "people": [ { "craft": "ISS", "name": "Chris Cassidy" }, { "craft": "ISS", "name": "Anatoly Ivanishin" }, { "craft": "ISS", "name": "Ivan Vagner" } ] }6 { "number": 3, "message": "success", "people": [ { "craft": "ISS", "name": "Chris Cassidy" }, { "craft": "ISS", "name": "Anatoly Ivanishin" }, { "craft": "ISS", "name": "Ivan Vagner" } ] }7 { "number": 3, "message": "success", "people": [ { "craft": "ISS", "name": "Chris Cassidy" }, { "craft": "ISS", "name": "Anatoly Ivanishin" }, { "craft": "ISS", "name": "Ivan Vagner" } ] }8 { "number": 3, "message": "success", "people": [ { "craft": "ISS", "name": "Chris Cassidy" }, { "craft": "ISS", "name": "Anatoly Ivanishin" }, { "craft": "ISS", "name": "Ivan Vagner" } ] }9 Trong bài học này, chúng ta sẽ xem cách sử dụng Python để giao tiếp với Giao diện lập trình ứng dụng (API). API là một giao diện phần mềm cho phép các ứng dụng giao tiếp với các ứng dụng khác. Trong trường hợp của chúng tôi, chúng tôi sẽ giao tiếp với API bằng Python Chúng tôi sẽ sử dụng mô-đun yêu cầu Python. Với mô-đun này, bạn có thể gửi tất cả các loại yêu cầu HTTP. Hãy cài đặt nó với PIP import requests0 Chúng tôi sẽ thử các API khác nhau để có thể kiểm tra những thứ khác nhau
API không có xác thựcKhi bạn cố gắng giao tiếp với một API lần đầu tiên bằng Python, bạn muốn đảm bảo rằng bạn dùng thử một API dễ hiểu và có tài liệu phù hợp. Nếu có thể, API không nên có xác thực, do đó bạn không phải lo lắng về các phương thức xác thực như mã thông báo, khóa API, OAuth, v.v. Một API như vậy là API Date Nager. Bạn có thể sử dụng API này để tìm nạp các ngày nghỉ lễ cho bất kỳ quốc gia và năm nào. Đó là một API đơn giản không yêu cầu xác thực và có tài liệu đàng hoàng Đây là mã mẫu của tôi Hãy để tôi giải thích đoạn mã trên
Xuất sắc. Bây giờ chúng tôi có một danh sách tất cả các ngày lễ của Hoa Kỳ vào năm 2020 Tham số truy vấnHãy tiếp tục với một ví dụ nâng cao hơn một chút. Lần này chúng tôi sử dụng API Datamuse. API này là một công cụ truy vấn tìm từ. Nó cho phép bạn gửi truy vấn để tìm các từ phù hợp với tiêu chí nhất định. Không phải thứ mà chúng tôi với tư cách là kỹ sư mạng có thể cần, nhưng đó là một cách tuyệt vời để kiểm tra các tham số truy vấn và Datamuse cung cấp tài liệu tốt Ví dụ: giả sử tôi muốn tìm các từ có vần với từ “mạng”. Bạn có thể sử dụng URL sau cho việc này https. //api. dữ liệu. com/words?rel_rhy=mạng Hãy tiếp tục và mở liên kết ở trên trong trình duyệt web của bạn. Phần trong URL sau ? Hãy xem liệu chúng ta có thể giao tiếp với API này bằng Python không Đoạn mã trên rất giống với ví dụ đầu tiên của chúng tôi. Tôi sử dụng mô-đun yêu cầu để gửi yêu cầu HTTP GET tới URL. Đoạn mã trên hoạt động, nhưng chúng ta có thể cải thiện nó theo cách Pythonic hơn Pythonic có nghĩa là bạn sử dụng mã tuân theo các phương pháp hay nhất dành cho Python và sử dụng nó theo cách mà nó dự định sẽ được sử dụng Hãy thử một cái gì đó khác. Đây là mã của tôi Trong đoạn mã trên, tôi đã tách URL khỏi tham số truy vấn. Bây giờ chúng tôi cũng sử dụng import requests1 thay vì import requests2 Đầu ra hoàn toàn giống nhau, nhưng mã của chúng tôi trông gọn gàng hơn một chút do tham số truy vấn riêng biệt Thay vì sử dụng thư viện yêu cầu, bạn có thể sử dụng một số mô-đun khác. Ví dụ: Datamuse cũng có mô-đun Python. Các mô-đun này thường sử dụng mô-đun yêu cầu dưới mui xe và loại bỏ một số phức tạp Sử dụng mô-đun có cả ưu và nhược điểm. Ưu điểm của mô-đun là thường xây dựng thứ gì đó nhanh hơn. Nhược điểm là một số mô-đun có thể hoạt động ngày hôm nay, nhưng sẽ không được duy trì trong tương lai Ví dụ: nếu bạn muốn giao tiếp với API Twitter, bạn có thể xây dựng thứ gì đó từ đầu hoặc sử dụng mô-đun phổ biến. một ví dụ như Tweety Trong trường hợp của Tweety, mô-đun này đã tồn tại được 8 năm và được duy trì tốt. Nếu bạn tìm thấy một mô-đun và lần cuối ai đó làm việc với nó là hơn hai năm trước, tốt hơn hết là bạn nên bỏ qua nó và sử dụng trực tiếp thư viện yêu cầu. Bạn vẫn có thể xem mã và sử dụng các phần của mô-đun làm nguồn cảm hứng cho mã của riêng mình Xác thực APIHãy chuyển sang ví dụ tiếp theo. Làm thế nào về một API yêu cầu xác thực? . Làm thế nào về chúng tôi giao tiếp với? . Bạn có thể giao tiếp với API của họ mà không cần đăng ký Tôi đã giữ mã mẫu của mình càng ngắn càng tốt, không có các khối if/else hoặc try/ngoại trừ để chúng tôi có thể tập trung hoàn toàn vào phần xác thực. Đây là mã Hãy để tôi giải thích đoạn mã trên
Xuất sắc. Chúng tôi nhận được một danh sách các thiết bị mạng và thời gian hoạt động của chúng Khi làm việc với API, một IDE có trình gỡ lỗi phù hợp sẽ rất hữu ích Phần kết luậnBây giờ bạn đã học cách giao tiếp với API bằng Python
Những ví dụ này giúp hiểu những điều cơ bản. Tuy nhiên, bạn phải luôn kiểm tra tài liệu API để tìm hiểu cách giao tiếp với API. Nếu bạn may mắn, họ cung cấp các ví dụ cho Python hoặc bạn có thể sử dụng một mô-đun để không phải làm việc trực tiếp với mô-đun yêu cầu Một bài học khác mà bạn có thể thích là bài học Giới thiệu về REST API. Trong bài học này, tôi giải thích API REST là gì và cách giao tiếp với bộ định tuyến CSR1000v bằng API REST API hoạt động như thế nào trong Python?API là viết tắt của giao diện lập trình ứng dụng. Về bản chất, API hoạt động như một lớp giao tiếp, hay đúng như tên gọi, một giao diện, cho phép các hệ thống khác nhau giao tiếp với nhau mà không cần phải hiểu chính xác những gì nhau làm. APIs can come in many forms or shapes.
Chúng ta có thể gọi API bằng Python không?Để làm việc với API trong Python, chúng tôi cần các công cụ thực hiện các yêu cầu đó . Trong Python, thư viện phổ biến nhất để tạo yêu cầu và làm việc với API là thư viện yêu cầu. Thư viện yêu cầu không phải là một phần của thư viện Python tiêu chuẩn, vì vậy bạn sẽ cần cài đặt nó để bắt đầu.
Làm cách nào để đọc API trong Python?Các bước lấy dữ liệu từ API bằng Python . Kết nối với một API. Lúc đầu, chúng tôi cần kết nối với API và tạo kết nối an toàn như hình bên dưới–. Lấy dữ liệu từ API. . Phân tích cú pháp dữ liệu thành định dạng JSON. . Trích xuất dữ liệu và in nó Kết nối với API hoạt động như thế nào?Hầu hết các API web nằm giữa ứng dụng và máy chủ web. Người dùng bắt đầu lệnh gọi API yêu cầu ứng dụng thực hiện điều gì đó, sau đó ứng dụng sẽ sử dụng API để yêu cầu máy chủ web thực hiện điều gì đó . API là trung gian giữa ứng dụng và máy chủ web và lệnh gọi API là yêu cầu. |