Hướng dẫn how do i create a rest api in python? - làm cách nào để tạo một api còn lại trong python?

Cách đúng để xây dựng API với Python

Tất cả những gì bạn cần biết trên phát triển API trong bình

Ảnh của Steve Johnson trên unplash

Làm thế nào chúng ta có thể thiết lập một cách để giao tiếp từ thể hiện phần mềm này sang trường hợp khác? Nghe có vẻ đơn giản, và - hoàn toàn trung thực - đó là.ow can we set up a way to communicate from one software instance to another? It sounds simple, and — to be completely honest — it is.

Tất cả những gì chúng ta cần là một API.

API [giao diện lập trình ứng dụng] là một giao diện đơn giản xác định các loại yêu cầu [nhu cầu/câu hỏi, v.v.] có thể được thực hiện, cách chúng được thực hiện và cách xử lý chúng.

Flask API Video Walkthrough - Bao gồm tất cả mọi thứ trong bài viết này!

Trong trường hợp của chúng tôi, chúng tôi sẽ xây dựng một API cho phép chúng tôi gửi một loạt các yêu cầu GET/POST/PUT/PAPT/PAIT/DETRE [thêm về điều này sau], cho các điểm cuối khác nhau và trả về hoặc sửa đổi dữ liệu được kết nối với API của chúng tôi.

Chúng tôi sẽ sử dụng khung bình để tạo API và Postman của chúng tôi để kiểm tra nó. Nói tóm lại, chúng tôi sẽ bao gồm:

> Setup
- Our Toy Data
- Initialize a Flask API
- Endpoints
- Running a Local Server
> Writing Our API
- GET
- POST
- 401 Unauthorized
- PUT
- DELETE
- Users Class [summary]
> That's It!

Thành lập

API của chúng tôi sẽ chứa hai điểm cuối, userslocations. Cái trước sẽ cho phép truy cập vào các chi tiết của người dùng đã đăng ký của chúng tôi, trong khi cái sau sẽ bao gồm một danh sách các vị trí cafe.

Trường hợp sử dụng giả thuyết ở đây là của một ứng dụng đánh dấu trang Cafe trị giá hàng triệu, nơi người dùng mở ứng dụng và đánh dấu quán cà phê yêu thích của họ-như Google Maps, nhưng không hữu ích.

Dữ liệu đồ chơi của chúng tôi

Để đơn giản, chúng tôi sẽ lưu trữ dữ liệu này trong hai tệp CSV cục bộ. Trong thực tế, có lẽ bạn muốn xem một cái gì đó như MongoDB hoặc Google Firebase.

Các tệp CSV của chúng tôi trông như thế này:

Dữ liệu của người dùng trong người dùng.csv. Hình ảnh của tác giả. Ánh xạ vị trí ở vị trí.csv. Hình ảnh của tác giả.

Bạn có thể tải xuống user.csv tại đây và vị trí.csv tại đây.

Khởi tạo API bình

Bây giờ đến tập lệnh Python của chúng tôi, chúng tôi cần nhập các mô -đun và khởi tạo API của chúng tôi, như vậy:

from flask import Flask
from flask_restful import Resource, Api, reqparse
import pandas as pd
import ast
app = Flask[__name__]
api = Api[app]

Điểm cuối

Khi chúng tôi đã chạm vào, API của chúng tôi sẽ có hai điểm cuối, userslocations.

Kết quả của điều này là - nếu API của chúng tôi được đặt tại www.api.com, giao tiếp với lớp Users sẽ được cung cấp tại ____10 và

from flask import Flask
from flask_restful import Resource, Api, reqparse
import pandas as pd
import ast
app = Flask[__name__]
api = Api[app]
1 tại
from flask import Flask
from flask_restful import Resource, Api, reqparse
import pandas as pd
import ast
app = Flask[__name__]
api = Api[app]
2.

Để tạo điểm cuối, chúng tôi xác định một lớp Python [với bất kỳ tên nào bạn muốn] và kết nối nó với điểm cuối mong muốn của chúng tôi với

from flask import Flask
from flask_restful import Resource, Api, reqparse
import pandas as pd
import ast
app = Flask[__name__]
api = Api[app]
3, như thế này:

  • Flask cần biết rằng lớp này là điểm cuối cho API của chúng tôi và vì vậy chúng tôi vượt qua
    from flask import Flask
    from flask_restful import Resource, Api, reqparse
    import pandas as pd
    import ast
    app = Flask[__name__]
    api = Api[app]
    4 với định nghĩa lớp.
  • Bên trong lớp, chúng tôi bao gồm các phương thức HTTP của chúng tôi [nhận, bài đăng, xóa, v.v.].
  • Cuối cùng, chúng tôi liên kết lớp Users của chúng tôi với điểm cuối
    from flask import Flask
    from flask_restful import Resource, Api, reqparse
    import pandas as pd
    import ast
    app = Flask[__name__]
    api = Api[app]
    6 bằng cách sử dụng
    from flask import Flask
    from flask_restful import Resource, Api, reqparse
    import pandas as pd
    import ast
    app = Flask[__name__]
    api = Api[app]
    3.

Bởi vì chúng tôi muốn hai điểm cuối, chúng tôi sao chép logic:two endpoints, we replicate the logic:

Chạy máy chủ cục bộ

Cuối cùng, khi chúng tôi viết API của chúng tôi, chúng tôi cần kiểm tra nó!

Để làm điều này, chúng ta cần lưu trữ API của mình, điều mà chúng ta có thể làm cục bộ bằng cách thêm

from flask import Flask
from flask_restful import Resource, Api, reqparse
import pandas as pd
import ast
app = Flask[__name__]
api = Api[app]
8 vào cuối tập lệnh của chúng ta như thế này:

if __name__ == '__main__':
app.run[] # run our Flask app

Bây giờ, khi chúng ta chạy kịch bản của mình, chúng ta sẽ thấy một cái gì đó như thế này:

Khởi tạo máy chủ localhost của chúng tôi. Hình ảnh của tác giả.

Khi máy chủ của chúng tôi được thiết lập, chúng tôi có thể kiểm tra API của chúng tôi khi chúng tôi xây dựng nó bằng Postman, nếu bạn đã sử dụng nó trước khi nó là tiêu chuẩn thực tế để kiểm tra API. Và, đừng lo lắng - nó cực kỳ đơn giản để sử dụng - tải xuống Postman từ đây.

Trước khi đi trước, bạn có thể tìm thấy toàn bộ kịch bản mà chúng tôi sẽ xây dựng ở đây. Nếu bạn không chắc chắn một đoạn mã nên đi đâu, hãy kiểm tra ở đó!

Viết phương thức API

Bên trong mỗi lớp của chúng tôi, chúng tôi giữ các phương thức HTTP của chúng tôi, nhận, đăng và xóa.

Để tạo phương thức GET, chúng tôi sử dụng

from flask import Flask
from flask_restful import Resource, Api, reqparse
import pandas as pd
import ast
app = Flask[__name__]
api = Api[app]
9. Đăng và xóa theo cùng một mẫu.

LẤY

Phương pháp GET là đơn giản nhất. Chúng tôi trả về tất cả dữ liệu được lưu trữ trong

if __name__ == '__main__':
app.run[] # run our Flask app
0 được bọc bên trong một từ điển, như vậy:

Sau đó, chúng tôi có thể chạy tập lệnh để khởi tạo API của chúng tôi, mở Postman và gửi yêu cầu nhận đến địa chỉ Localhost của chúng tôi [thường là ____ 21] - đây là điểm nhập API của chúng tôi.

Làm thế nào để gửi yêu cầu nhận API của chúng tôi. Hình ảnh của tác giả.

Để gửi yêu cầu nhận API của chúng tôi trong Postman, chúng tôi:

  1. Chọn Nhận từ thả xuống
  2. Nhập điểm nhập của phiên bản API của chúng tôi +
    from flask import Flask
    from flask_restful import Resource, Api, reqparse
    import pandas as pd
    import ast
    app = Flask[__name__]
    api = Api[app]
    6 [điểm cuối]
  3. Nhấn gửiSend
  4. Kiểm tra mã trạng thái được API của chúng tôi trả về [chúng ta sẽ thấy
    if __name__ == '__main__':
    app.run[] # run our Flask app
    3]
  5. Xem phản hồi API của chúng tôi, đó là
    if __name__ == '__main__':
    app.run[] # run our Flask app
    0 trong định dạng JSON [như từ điển]

BƯU KIỆN

Phương pháp bài viết cho phép chúng tôi thêm hồ sơ vào dữ liệu của chúng tôi. Trong trường hợp này, chúng tôi sẽ có lập luận cho

if __name__ == '__main__':
app.run[] # run our Flask app
5,
if __name__ == '__main__':
app.run[] # run our Flask app
6 và
if __name__ == '__main__':
app.run[] # run our Flask app
7.

Các đối số này được chuyển đến điểm cuối API của chúng tôi dưới dạng các tham số URL, trông như thế này:

//127.0.0.1:5000/users?userId=abc123&name=The Rock&city=Los Angeles

Chúng tôi có thể chỉ định các tham số cần thiết và sau đó phân tích các giá trị được cung cấp bằng cách sử dụng

if __name__ == '__main__':
app.run[] # run our Flask app
8 - như thế này:

Hãy để phá vỡ mã phân tích cú pháp của chúng tôi xuống:

  • Chúng tôi khởi tạo trình phân tích cú pháp của chúng tôi với
    if __name__ == '__main__':
    app.run[] # run our Flask app
    9.
  • Thêm đối số của chúng tôi với
    //127.0.0.1:5000/users?userId=abc123&name=The Rock&city=Los Angeles
    0 - Lưu ý rằng
    //127.0.0.1:5000/users?userId=abc123&name=The Rock&city=Los Angeles
    1 có nghĩa là cần phải có đối số trong yêu cầu. Ngoài ra, chúng tôi có thể thêm các đối số tùy chọn với
    //127.0.0.1:5000/users?userId=abc123&name=The Rock&city=Los Angeles
    2.
  • Phân tích các đối số của chúng tôi và các giá trị của chúng vào từ điển Python bằng cách sử dụng
    //127.0.0.1:5000/users?userId=abc123&name=The Rock&city=Los Angeles
    3.

Sau đó, chúng ta có thể truy cập các giá trị được truyền cho mỗi đối số như chúng ta thường làm với các cặp giá trị khóa trong một từ điển.

Hãy cùng nhau đặt chúng lại để thêm các giá trị vào CSV của chúng tôi:

Nếu nó bắt đầu trông khó hiểu hơn một chút - tất cả những gì chúng tôi làm là:

  • Tạo một hàng dữ liệu mới
    //127.0.0.1:5000/users?userId=abc123&name=The Rock&city=Los Angeles
    4 từ các tham số URL
    //127.0.0.1:5000/users?userId=abc123&name=The Rock&city=Los Angeles
    5
  • Nối nó vào
    //127.0.0.1:5000/users?userId=abc123&name=The Rock&city=Los Angeles
    6 đã tồn tại trước
  • Lưu dữ liệu mới được hợp nhất
  • Và, trả về
    //127.0.0.1:5000/users?userId=abc123&name=The Rock&city=Los Angeles
    6 cùng với mã trạng thái
    if __name__ == '__main__':
    app.run[] # run our Flask app
    3.
Chúng tôi tạo một người dùng mới bằng cách gửi một yêu cầu POST có chứa các tham số userid, name và thành phố đến điểm cuối /người dùng của chúng tôi. Hình ảnh của tác giả.POST request containing userId, name, and city parameters to our /user endpoint. Image by Author.

Bây giờ chúng tôi có thể gửi một yêu cầu bài đăng để tạo một người dùng mới, dễ dàng!POST request to create a new user, easy!

401 trái phép

Mã của chúng tôi xử lý các yêu cầu POST, cho phép chúng tôi viết dữ liệu mới lên

if __name__ == '__main__':
app.run[] # run our Flask app
0 - nhưng nếu người dùng đó đã tồn tại thì sao?POST requests, allowing us to write new data to
if __name__ == '__main__':
app.run[] # run our Flask app
0 — but what if that user already exists?

Đối với điều đó, chúng ta cần thêm một tấm séc. Nếu users0 đã tồn tại, chúng tôi sẽ trả lại mã users1 cho người dùng.

Nếu chúng tôi cố gắng đăng lại với UserID ‘ABC123, chúng tôi sẽ trả lại mã trạng thái và thông báo trạng thái trái phép sau đây. Hình ảnh của tác giả.

Quay trở lại Postman, chúng tôi có thể kiểm tra xem API của chúng tôi có hoạt động hay không bằng cách cố gắng thêm cùng một người dùng - lần này, Rock đã nhận được phản hồi users1.

ĐẶT

Điều gì sẽ xảy ra nếu chúng ta muốn thêm một quán cà phê cho người dùng? Chúng tôi có thể sử dụng bài đăng vì điều này trả về mã users1 - thay vào đó, chúng tôi sử dụng PUT.POST as this returns a users1 code — instead, we use PUT.

Tương tự như bài đăng, chúng ta cần thêm logic IF-Else trong trường hợp users0 được cung cấp không tồn tại.POST, we need to add if-else logic in the case of the provided users0 not existing.

Khác với một vài điều chỉnh nhỏ cho mã, phương thức đặt của chúng tôi gần như giống hệt nhau để đăng.PUT method is almost identical to POST.

Ở đây chúng tôi sử dụng phương thức PUT để thêm quán cà phê với ID 0007 vào các vị trí đánh dấu Rock Rock. Hình ảnh của tác giả.PUT method to add the cafe with ID 0007 to The Rock’s bookmarked locations. Image by Author.

Quay trở lại Postman, các tham số đầu vào cần thiết của chúng tôi đã thay đổi. Bây giờ, chúng tôi chỉ cần users0 và users6 để thêm vào người dùng đã đánh dấu locations.

XÓA BỎ

Chúng ta cũng có thể xóa các bản ghi với phương thức xóa.DELETE method.

Phương pháp này khá đơn giản, chúng ta cần chỉ định users0 để xóa và thêm một số logic IF-Else trong trường hợp users0 không tồn tại.

Vì vậy, nếu locations0 quyết định ứng dụng của chúng tôi là vô dụng và muốn rời đi, chúng tôi sẽ gửi một yêu cầu xóa có chứa users0 của cô ấy.DELETE request containing her users0.

Gửi yêu cầu xóa cho UserID ‘B2C, xóa bản ghi Jill, khỏi dữ liệu người dùng của chúng tôi. Hình ảnh của tác giả.DELETE request for userId ‘b2c’ deletes Jill’s record from our user data. Image by Author.

Chúng tôi có thể kiểm tra điều này trong Postman và như mong đợi, chúng tôi trả về dữ liệu của chúng tôi mà không cần hồ sơ Jill. Điều gì sẽ xảy ra nếu chúng ta thử và xóa một người dùng không tồn tại?

Nếu chúng ta xóa một userid không tồn tại, chúng ta sẽ nhận được mã trạng thái không tìm thấy 404 và một thông báo giải thích rằng userid không tồn tại. Hình ảnh của tác giả.DELETE a userId that does not exist, we will receive a 404 Not Found status code and a message explaining that the userId does not exist. Image by Author.

Một lần nữa, chúng tôi nhận được locations2 của chúng tôi và một thông điệp ngắn gọn giải thích rằng users0 không được tìm thấy.

Lớp người dùng

Đó là tất cả các phần tạo nên lớp Users, được truy cập thông qua điểm cuối

from flask import Flask
from flask_restful import Resource, Api, reqparse
import pandas as pd
import ast
app = Flask[__name__]
api = Api[app]
6 của chúng tôi. Bạn có thể tìm thấy toàn bộ kịch bản cho nó ở đây.

Sau đó, chúng ta vẫn cần phải kết hợp lớp

from flask import Flask
from flask_restful import Resource, Api, reqparse
import pandas as pd
import ast
app = Flask[__name__]
api = Api[app]
1. Lớp khác này sẽ cho phép chúng tôi có được, đăng, vá [cập nhật] và xóa các vị trí.

Mỗi vị trí được cung cấp một ID duy nhất - khi người dùng đánh dấu một vị trí, ID duy nhất đó được thêm vào danh sách locations của họ với locations8.

Mã cho điều này không khác nhiều so với những gì chúng tôi đã viết trong lớp Users để chúng tôi không lặp lại chính mình. Tuy nhiên, bạn có thể tìm thấy nó cùng với lớp Users ở đây.

Đó là nó!

Nó đơn giản như vậy. Thiết lập một API với bình và Python là vô cùng đơn giản.

Bây giờ chúng tôi có một phương pháp dễ sử dụng và tiêu chuẩn hóa để giao tiếp giữa các giao diện khác nhau.

Chúng tôi đã bao gồm tất cả các phương thức yêu cầu phổ biến nhất - nhận, đăng, đặt và xóa - và một vài mã trạng thái HTTP - 200, 401 và 404.

Cuối cùng, chúng tôi đã học được cách lưu trữ API của chúng tôi tại địa phương và kiểm tra nó với Postman - cho phép chúng tôi nhanh chóng chẩn đoán các vấn đề và đảm bảo API của chúng tôi hoạt động như dự định.

Tất cả trong tất cả, phát triển API là một kỹ năng quan trọng đối với các nhà phát triển, nhà khoa học dữ liệu và hầu hết mọi vai trò bao gồm công nghệ khác mà bạn có thể tưởng tượng.

Nếu bạn muốn nhiều hơn, tôi đăng các hướng dẫn lập trình trên YouTube ở đây. Hoặc, nếu bạn có bất kỳ câu hỏi hoặc ý tưởng để cải thiện, hãy cho tôi biết trên Twitter hoặc trong các ý kiến ​​dưới đây.

Tôi hy vọng bạn thích bài viết và cảm ơn bạn đã đọc!

Giảm giá 70% cho khóa học NLP với Transformers

Nhìn vào thực hiện các bước tiếp theo trong phát triển API và chia sẻ công việc của bạn với thế giới? Đọc về triển khai API với nền tảng Google Cloud tại đây:

Chúng ta có thể phát triển API REST bằng Python không?

Phát triển API trong Python là một nhiệm vụ rất dễ dàng. Hướng dẫn này sẽ giúp bạn tạo API REST cơ bản trong Python với khung bình. API nghỉ ngơi ở khắp mọi nơi. Chúng là phương pháp tiêu chuẩn để phơi bày cơ sở dữ liệu cho khách hàng và biết cách phát triển API REST là một điều cần thiết ở tất cả các lớp của ngăn xếp.. This tutorial will help you to create a basic REST API in Python with the Flask Framework. REST APIs are pretty much everywhere. They are the standard method to expose databases to clients and knowing how to develop a REST API is a necessity at all layers of the stack.

Làm cách nào để xây dựng API nghỉ ngơi của riêng tôi?

Làm thế nào để thiết kế API REST..
Xác định các tài nguyên - mô hình đối tượng. Bước đầu tiên trong việc thiết kế một ứng dụng dựa trên API REST là xác định các đối tượng sẽ được trình bày dưới dạng tài nguyên. ....
Tạo URI mô hình. ....
Xác định các đại diện tài nguyên. ....
Gán các phương thức HTTP. ....
Nhiêu hanh động hơn..

Ví dụ API REST là gì?

API REST cho phép người dùng truy cập dữ liệu dịch vụ web thông qua URL web công khai.Python Rest API là một API như vậy.Bạn có thể sử dụng URL này để có thông tin về một người dùng GitHub nhất định.Gửi yêu cầu HTTP đến URL cụ thể và xử lý câu trả lời là cách bạn nhận dữ liệu từ API REST Python.allow users to access web service data via public web URLs. Python REST API is one such API. You can use this URL to get information on a certain GitHub user. Sending an HTTP request to a specific URL and processing the answer is how you get data from a Python REST API.

Làm cách nào để tạo API REST với Python và bình?

Nhập các mô -đun và khởi tạo một ứng dụng.Bây giờ chúng ta bắt đầu viết mã của chúng tôi bằng cách nhập các mô -đun bình và khởi tạo ứng dụng web.....
Tạo các điểm cuối API REST.....
Viết phương thức để đọc và ghi dữ liệu trong tệp CSV.....
Kiểm tra các điểm cuối bằng Postman ..

Chủ Đề