Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Flask
Code

Xây dựng RESTful API Với Flask: Một ORM với SQLAlchemy

by
Difficulty:BeginnerLength:ShortLanguages:
This post is part of a series called Building RESTful APIs With Flask.
Building RESTful APIs With Flask: The DIY Approach
Building RESTful APIs With Flask: ORM Independent

Vietnamese (Tiếng Việt) translation by Dai Phong (you can also view the original English article)

Trong phần đầu của loạt bài hướng dẫn gồm ba phần này, chúng ta đã tìm hiểu cách viết RESTful API sử dụng Flask làm web framework. Cách tiếp cận trước cung cấp rất nhiều tính linh hoạt nhưng cũng cần phải viết rất nhiều code, điều mà chúng ta có thể tránh được trong các trường hợp chung hơn.

Trong phần này, chúng ta sẽ sử dụng một extension của Flask, Flask-Restless, nó đơn giản tạo ra RESTful API cho các model cơ sở dữ liệu được định nghĩa bằng SQLAlchemy. Tôi sẽ lấy ứng dụng mẫu tương tự như trong phần trước của loạt bài này để duy trì ngữ cảnh và tính liên tục.

Cài đặt các Phụ thuộc

Tiếp tục với ứng dụng từ phần đầu tiên, chúng ta chỉ cần cài đặt một phụ thuộc:

Ứng dụng

Flask-Restless làm cho việc thêm các giao diện RESTful API vào các model được viết bằng SQLAlchemy trở nên dễ dàng. Đầu tiên, thêm REST APIManager từ extension flask.ext.restless vào tập tin cấu hình ứng dụng.

flask_app/my_app/__init__.py

Chỉ cần thêm vài dòng ở trên vào code hiện tại là đủ.

flask_app/my_app/catalog/views.py

Tập tin này bao gồm phần lớn các thay đổi từ phần trước. Dưới đây là tập tin đã được viết lại một cách hoàn chỉnh.

Nhìn vào dễ thấy code ở trên làm việc như thế nào. Chúng ta vừa import manager được tạo ra trong tập tin trước đó và nó được sử dụng để tạo ra một API cho model Product với methods được liệt kê ra. Chúng ta có thể thêm các phương thức như DELETE, PUT, PATCH và vân vân nếu cần.

Kiểm tra Ứng dụng

Hãy thử nghiệm ứng dụng này bằng cách tạo ra một số sản phẩm và liệt kê chúng ra. Endpoint được tạo bởi extension này mặc định là http://localhost:5000/api/product.

Như tôi đã thực hiện trong phần trước của loạt bài hướng dẫn này, tôi sẽ thử nghiệm điều này bằng thư viện requests thông qua Terminal.

Cách Tuỳ biến

Thật là tiện lợi khi có các RESTful API được tạo ra một cách tự động, nhưng mỗi ứng dụng đều có một số logic đòi hỏi sự tuỳ biến, kiểm tra, và xử lý các yêu cầu một cách thông minh/an toàn khi cần thiết.

Ở đây, yêu cầu preprocessors và postprocessors đến giải cứu. Giống như tên gọi, các phương thức được xem là preprocessors chạy trước khi xử lý yêu cầu và các phương thức được xem là postprocessors chạy sau khi xử lý yêu cầu. create_api() là nơi mà chúng được định nghĩa như là các dictionary của kiểu yêu cầu (GET, POST, vv) và methods như là danh sách sẽ hoạt động như là preprocessors hoặc postprocessors trên yêu cầu cụ thể. Dưới đây là ví dụ mẫu:

Các yêu cầu GET, PUT, PATCH có tính linh hoạt trong việc kích hoạt cho các bản ghi đơn cũng như đa; Do đó, mỗi cái có hai kiểu. Trong đoạn code ở trên, chú ý GET_SINGLEGET_MANY cho các yêu cầu GET.

preprocessor và postprocessor chấp nhận các tham số khác nhau cho mỗi loại yêu cầu và làm việc mà không có bất kỳ giá trị trả về. Tôi sẽ để lại điều này để cho bạn tự mình thử.

Tóm tắt

Trong phần này của loạt bài hướng dẫn, chúng ta đã tìm hiểu cách tạo một RESTful API sử dụng Flask và thêm một vài dòng code vào một model dựa trên SQLAlchemy.

Trong phần tiếp theo và cuối cùng của loạt bài này, tôi sẽ giới thiệu cách tạo một RESTful API sử dụng một extension phổ biến khác dành cho Flask, nhưng lần này, API sẽ độc lập với công cụ tạo model được sử dụng cho cơ sở dữ liệu.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.