Gem: FAST JSON API serialization

Giới thiệu

Fast JSONAPI cung cấp tất cả các chức năng chính của Active Model Serializer (AMS) cùng với sự nhấn mạnh về tốc độ và hiệu suất nhanh gấp 25 lần của AMS. Fast JSONAPI cũng thực hiện những chặt chẽ yêu cầu về tốc độ và được auto test tại: https://github.com/Netflix/fast_jsonapi/blob/master/spec/lib/object_serializer_performance_spec.rb.

AMS là một Gem tuyệt vời và Fast JSON API cũng lấy các tính năng của nó khi nói đến cú pháp và tính năng. AMS sẽ bắt đầu chậm lại khi một model có nhiều mối quan hệ. Vứt bỏ nhu cầu di chuyển vô hạn trên giao diện người dùng và sự chậm lại của AMS bắt đầu trở nên hiển thị với người dùng.

Tại sao tối ưu hóa serialization?

Việc tuần tự JSON của API thường là một trong những phần chậm nhất của nhiều API Rails được triển khai tốt. Tại sao không cung cấp tất cả các chức năng chính mà AMS cung cấp với tốc độ cao hơn?

Tính năng:

  • Cú pháp khai báo tương tự như Active Model Serializer
  • Hỗ trợ cho các mối quan hệ has_many và has_one
  • Hỗ trợ compound documents.
  • Tối ưu hóa tuần tự compound documents
  • Caching
  • Tích hợp Skylight (tùy chọn)

Làm thế nào để bạn viết một serializer sử dụng nhanh JSONAPI?

Chúng tôi thích cách quen thuộc Active Model Serializers cho phép chúng ta khai báo serializers của chúng tôi. Cú pháp khai báo của fast_jsonapi tương tự như AMS.

class MovieSerializer
 include FastJsonapi::ObjectSerializer
 attributes :name, :year
 has_many :actors
 belongs_to :owner, record_type: :user
 belongs_to :movie_type
end

Nó nhanh như thế nào so với Active Model Serializers?

Các bài kiểm tra hiệu suất cho thấy đạt được tốc độ 25-40x so với AMS, chủ yếu là làm cho thời gian tuần tự không đáng kể trên các mô hình thậm chí khá phức tạp. Hiệu suất đạt được là đáng kể khi số lượng cácbản ghi tuần tự tăng lên.

Kế hoạch dự định của nhà phát triển

Họ đang có kế hoạch để thêm nhiều tính năng hơn cho đá Gem. Và họ hoan nghênh các đề xuất, cải tiến, chỉnh sửa và các auto test bổ sung.

Để tham khảo Gem bạn có thể vào link GIT của Netflix.

Kết Luận

Đây là một bài viết mình thấy rất hay khi đi tìm về API của rails. Trong bài mình dịch không được hay và sat nghĩa vì vậy bạn có thể đọc bản gốc tại: NETFLIX TECH BLOG