Những lưu ý khi viết server API cho app
API
12
Male avatar

rockkhuya viết ngày 28/07/2015

Bài viết này viết về những lưu ý khi viết server API cho app nhằm làm giảm công sức và để công việc trở nên dễ dàng hơn với cả 2 phía.

Link gốc : Việt on Rails

Cấu trúc dữ liệu

  • Khi trả data về, phải tuân theo 1 quy định thống nhất từ trước. Với những dữ liệu có cấu trúc, điều này là đương nhiên. Ngoài ra, khi trả về list hay relation, hãy sử dụng chính xác và rõ ràng property để xác định cấu trúc dữ liệu tương ứng.
  • Chuẩn hoá các dữ liệu trả về dưới dạng list hoặc có paging. Trường hợp không có dữ liệu cũng cần phải được chú ý tới. Ví dụ, trong trường hợp không có dữ liệu thì trả về NULL hay trả về array trống, hay trả về property trống. Những điều này cần phải được quy định rõ ràng từ trước.
  • Trong trường hợp có paging, việc tạo ra nhiều parttern là không cần thiết. Hãy định nghĩa 1 dạng paging đơn giản hoặc làm giống như twitter là sử dụng since_id để paging. Khi yêu cầu cần làm những chức năng gần giống như timeline thì cách paging cần phải được xác định kĩ càng.
  • Trong trường hợp trả về ảnh có yêu cầu kích thước, thì server phải xử lý trước rồi mới gửi về.
  • Error response cũng là 1 trường hợp cần phải chuẩn hoá và quy định rõ ràng. Error message cũng nên được xử lý ở server vì khi cần update hoặc thay đổi thì làm trên server sẽ đơn giản hơn.
  • Tốt hơn là không nên sử dụng cấu trúc nest. Xử lý và thao tác với dữ liệu nest trên app phức tạp và khó hiểu hơn nhiều. Điều này cần 1 thiết kế DB và API thật tốt.
  • Tốt hơn là app không cần phải xử lý và bổ xung thêm dữ liệu nào. Cần dữ liệu nào thì server sẽ xử lý và trả về cùng API.
  • Trường hợp không có dữ liệu, server nên gửi trả về giá trị default để loại bỏ những đoạn code kiểm tra này ở app.
  • Không nên sử dụng 1 API lớn, mà nên chia thành nhiều API nhỏ. Về sau khi cần cải tiến tốc độ của server thì mọi việc sẽ đơn giản hơn.

Lưu ý khi app đã release

  • Cố gắng thiết kế sao cho chỉ cần thay đổi API mà không cần thay đổi app. Ví dụ như :
    • Chỉ cần thay đổi thứ tự dữ liệu từ API trả về là có thể thay đổi thứ tự ở app.
      • Trong trường hợp có nhiều mục, như mục suggest, mục ranking, ... thì thay vì cố định cách sắp xếp trong app, ta nên thiết kế sao cho chỉ cần thay đổi trên server. Như thế thì việc kiểm tra sự hiệu quả, A/B test, ... sẽ dễ dàng hơn rất nhiều.
  • Update bắt buộc/tuỳ ý, maintenance, version, ... nên thiết kế sao cho có thể response từ server. Ví dụ thiết kế 1 API để kiểm tra version, params sẽ gồm version hiện tại của app. Server sẽ so sánh với version mới nhất trên server, nếu không phải mới nhất thì trả về {version: '1.1.1', update_required: 'true' } để bắt buộc phải update.

Lưu ý về cải thiện tốc độ app

  • Bên app cũng phải nắm được kế hoạch cache dữ liệu của server.
    • Nếu có thể nắm được dữ liệu cache, mức độ thay đổi của dữ liệu, ... thì không chỉ server có thể tiến hành cache được, mà cả client side cũng có thể tiến hành cache.

Kết luận

Khác với web, app cần phải có sự cho phép của store, vì thế sự thay đổi của app sẽ không thể thường xuyên được.
Khi thiết kế API và DB, phải chú ý đặc điểm này để thiết kế cho phù hợp, sao cho chỉ cần thay đổi server là có thể thay đổi được nội dung trong app.
Ngoài ra, code của app thường phức tạp và dài, vì thế việc xử lý dữ liệu sẽ phức tạp và khó theo dõi hơn là thực hiện trên server. App sẽ tập trung vào các hiệu ứng và hiển thị dữ liệu, việc xử lý dữ liệu sẽ do server thực hiện.

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

Male avatar

rockkhuya

2 bài viết.
4 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
Male avatar
9 0
Link gốc : (Link) cells là gì Khi làm việc với view của Rails, không ngày nào mà không sử dụng tới method partial. Tuy nhiên, partial chỉ là 1 t...
rockkhuya viết hơn 3 năm trước
9 0
Bài viết liên quan
White
21 3
Giao diện lập trình ứng dụng, còn gọi là API (Application Programming Interface) là chương trình cho phép người dùng sử dụng các phương thức của mộ...
chuong2v viết hơn 3 năm trước
21 3
White
12 5
Setup hệ thống Api với Nodejs trong 1 nốt nhạc Mục đích bài viết là sẽ giúp setup hệ thống api cơ bản, và cung cấp giao diện admin để thao tác với...
Xaolonist viết hơn 1 năm trước
12 5
White
23 4
Lời mở đầu API ngày càng phổ biến và chắc chắn ngày càng cần thiết hơn trong quá trình phát triển của ngành Phần Mềm. Dĩ nhiên như anh Phil Sturgeo...
Tùng Đặng Thanh viết gần 3 năm trước
23 4
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


Male avatar
{{userFollowed ? 'Following' : 'Follow'}}
2 bài viết.
4 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!