Trong bài chúng ta sẽ thực hành viết các REST API sử dụng Django REST framework – một thư viện giúp người dùng có thể xây dựng các Rest API một cách đơn giản, nhanh chóng.

Trước hết, chúng ta tiến hành cài đặt Rest framework sử dụng các dòng lệnh sau:

Tiếp theo, chúng ta tạo một project với ứng dụng StockApp như sau:

Ta tiến hành khai báo StockApp và Rest framework với RestFrameworkExample project trong file RestFrameworkExample/settings.py như sau:

Trong file StockApp/models.py, ta sử dụng lại code của Stock Model trong bài Sử dụng View và Template trong Django như sau:

Tiếp theo ta sử dụng lệnh migrate để tạo Stock table trong database như sau:

Tiếp theo, trong thư mục StockApp ta tạo file serializers.py để viết các serializer cho các models của project (Serializer giúp chuyển các dữ liệu có cấu trúc phức tạp như querysets hoặc model instance thành các kiểu dữ liệu Python truyền thống, từ đó có thể dễ dàng chuyển sang các định dạng khác như json, xml,… Serializer cũng cung cấp tính năng deserialization là quá trình ngược lại với serialization để chuyển dữ liệu lại thành các dữ liệu ban đầu, có cấu trúc phức tạp).

Lưu ý: Trong ví dụ này, chúng ta sử dụng HyperlinkedModelSerializer. Tuy nhiên, Django Rest Framework cũng hỗ trợ các loại Serializer khác như Serializer, ModelSerializer, ListSerializer (tham khảo thêm tại đây)

Đối với view của ứng dụng, ta viết hàm getStockInfo() trong file StockApp/views.py như sau:

Lưu ý: Rest Framework cung cấp hai loại wrapper cho API view là @api_view (sử dụng cho function-based view) và APIView ( sử dụng cho class-based views). Các wrapper này cung cấp các tính năng như bảo đảm view nhận được đúng loại Request, xử lý lỗi với request.data,… (tham khảo thêm tại đây)

Để kiểm tra hoạt động của ứng dụng, ta khởi chạy project với lệnh python manage.py runserver và truy cập địa chỉ http://127.0.0.1:8000/stockApp/getInfo/ ta được kết quả sau:

Như vậy, StockApp đã cung cấp API để người dùng có thể truy cập dữ liệu chứng khoán. Hiện tại chúng ta chưa thêm dữ liệu nào vào Stock table nên không có kết quả trả về. Do đó, chúng ta sẽ viết một API cho phép người dùng thêm thông tin về một mã chứng khoán bất kỳ bằng cách viết hàm addStock() trong file StockApp/views.py như sau:

Ta cấu hình url cho StockApp trong file StockApp/urls.py như sau:

Để kiểm tra hoạt động của hàm addStock(), ta tạo post request với Postman như sau:

Truy cập lại địa chỉ http://127.0.0.1:8000/stockApp/getInfo/ ta nhận được thông tin về mã BID mới được thêm vào ở trên như sau:

Như vậy, chúng ta đã hoàn thành việc viết một ứng dụng sử dụng Django Rest Framwork để tạo các RestAPI cung cấp các hàm xử lý cho người dùng. Các bạn có thể tham khảo code của bài này trong trang Github của Itech Seeker tại đây.

Tháng Tám 28, 2021
ITechSeeker