API và các thuật ngữ quan trọng BA nên biết! – Phần 1

Mặc dù ra đời từ rất lâu nhưng API vẫn rất hot trong cộng đồng công nghệ mỗi khi nhắc đến. Nếu bạn đã click vào bài viết này mình tin chắc rằng bạn cũng đang rất háo hức để xem những thông tin về API. Xem ngay cùng mình nhé!

1. API là gì

API là viết tắt của cụm từ Application Programming Interface – có nghĩa tiếng Việt là giao diện lập trình ứng dụng. Nghe có vẻ trừu tượng nhưng thực chất chúng là giao diện giữa những hệ thống hoặc ứng dụng với nhau. Để hiểu rõ hơn mình sẽ đưa ra một ví dụ cụ thể, ví dụ bạn muốn lấy dữ liệu trên mạng xã hội Twitter nhằm mục đích phân tích, bạn cần gửi yêu cầu đến Twitter trình bày đầy đủ thông tin và mục đích của mình. Khi được Twitter xét duyệt, bạn sẽ nhận được mã và truy cập vào nguồn dữ liệu từ Twitter.

Không chỉ thế, API còn ứng dụng nhiều trong thiết kế, lập trình web và ứng dụng giúp lập trình viên lấy dữ liệu trực tiếp từ những trang web, giúp tiết kiệm thời gian, chi phí.

Đối với API có hai đối tượng chính là Client – tổng hợp những người sử dụng API; và Server – đội ngũ xây dựng và phát triển API. Đối với mỗi cương vị API sẽ có ý nghĩa riêng:

  • Đối với đội ngũ lập trình viên của Server: API là người thiết kế, xây dựng nên API hoặc bản mô tả ngắn gọn (tùy thuộc doanh nghiệp).
  • Đối với đội ngũ lập trình viên của Client: Đây là những đối tượng sử dụng API để phục vụ cho những mục đích của dự án của mình hoặc của doanh nghiệp.

API không đơn giản chỉ là phương thức kết nối đơn giản mà để đưa vào sử dụng, người xây dựng cần quan tâm đến nhiều vấn đề như:

  • Tổ chức và quản lý: Bởi API là một dạng của mã nguồn mở nên việc tổ chức và quản lý rất quan trọng để đảm bảo sự an toàn của Server. Nếu không cẩn trọng thì các đối tượng xấu có thể tận dụng để xâm nhập và gây hại đến hệ thống. Bên cạnh đó, việc xây dựng tài liệu rõ ràng cùng rất quan trọng để phân quyền cho các Client. Xác định rõ ràng: Ai có thể truy cập? Truy cập những phần nào? Truy cập trong thời gian bao lâu? Không chỉ vậy, theo từng khoảng thời gian cụ thể, bên phía Server cần báo cáo và phân tích dữ liệu về nguồn truy cập API để đo được hiệu quả sử dụng của API.

  • Xây dựng mô hình kinh doanh: Có nhiều mô hình kinh doanh dựa trên API như miễn phí, người dùng phải trả phí khi sử dụng hoặc người dùng sẽ được trả phí để khuyến khích sử dụng. Tùy vào các mục tiêu khác nhau mà doanh nghiệp sẽ lựa chọn mô hình kinh doanh phù hợp.
2. Các thuật ngữ quan trọng trong API 

Đối với BA, khi tham gia vào một dự án ứng dụng API ngoài việc tìm hiểu thông tin về lĩnh vực đó bạn còn nên nắm vững ý nghĩa của các thuật ngữ về API để dễ dàng trao đổi với các cộng sự của mình như lập trình viên hoặc kiểm thử phần mềm. Bên dưới đây là một số thuật ngữ mà BA nên nắm về API giúp công việc của bạn thuận tiện hơn.

2.1 Request và Response

Request có nghĩa là yêu cầu, phía Client sẽ gửi “request” (yêu cầu) đến phía Server về những mong muốn kết quả của mình. Khi nhận được yêu cầu, phía Server sẽ trả lại kết quả thì đó gọi là Response. Ví dụ, khi cần lấy tên các xu hướng trên Twitter, ta có thể sử dụng Google Colab để gửi request, sau đó Twitter sẽ response lại danh sách tên các xu hướng hiện tại.

Với vai trò là một BA, bạn nắm rõ đâu là những trường dữ liệu cần lấy (Ví dụ như: Tên sản phẩm, giá cả, mô tả) để thảo luận cùng lập trình viên sử dụng các dữ liệu một cách hợp lý.

2.2 REST

REST hay RESTful là viết tắt của Representational State Transfer là quy tắc về ngôn ngữ giao tiếp giữa người và máy để máy có thể hiểu được những ý định của con người.

Một số đặc tính của REST:

  • Resource-based

    • Resource-based dịch nghĩa tiếng Việt là dựa trên nguồn dữ liệu. Mỗi một Server mà chúng ta sử dụng API đều là một nguồn.
    • Ví dụ, bạn xây dựng một trang web và liên kết với API của Tiki để lấy dữ liệu, thì lúc này dữ liệu Tiki là resource của bạn.

  • Representation

Trong cuộc sống đời thường, khi cần nhắn tin trao đổi bằng các loại ngôn ngữ khác nhau bạn sẽ dùng các phương thức khác nhau như chữ tượng hình hoặc kiểu bảng chữ cái. Đối với máy tính cũng vậy, chúng cũng cần cách thức biểu diễn với các nguyên tắc riêng để có thể giao tiếp với nhau. Hai phương thức phổ biến nhất là JSON và XML.

  • Các ràng buộc

    • Uniform interface (Uniform Resource Identifier / Locator, hay URI / URL): Thuật ngữ này có nghĩa cả hai sẽ thống nhất về các thông tin và quyền hạn từ ban đầu, mọi thứ sẽ không thay đổi trong cả quá trình sử dụng. Vậy nên với vai trò là một BA, bạn cần suy nghĩ thấu đáo và lường trước nhu cầu của hệ thống về sự phát triển trong tương lai để đưa ra các Uniform interface từ ban đầu. Cụ thể, 2 tháng trước trang web của bạn cần lấy thông tin về tên và giá sản phẩm tại Shopee, tuy nhiên hiện tại cần thêm mô tả và đánh giá về sản phẩm. Điều này sẽ rất khó khăn cho nhóm của bạn để có thể lấy thêm các trường dữ liệu và tốn thêm nhiều thời gian. Mặt khác, đừng nên tham lam quá khi mong muốn quyền hạn quá nhiều vì nên nhớ một số API cần trả phí khi sử dụng!
    • Client-server architecture: Đây là sự tuân thủ kiến trúc Client – Server. Vai trò và trách nhiệm của hai bên được quy định từ ban đầu và sẽ không bất kỳ sự phá vỡ nào. Client luôn là người sử dụng tài nguyên và Server luôn phải là người cung cấp, nắm giữ.
    • Stateless: Từ này khi dịch ra tiếng Việt có vẻ khá trừu tượng, khó hiểu nhưng thực tế là đòi hỏi các thông tin về yêu cầu cần được đưa đầy đủ. Ví dụ, mỗi lần gửi request cho Twitter để lấy thông tin về các bài viết được xuất bản cuối tuần, thì cần thông tin chính xác là thứ bảy hay chủ nhật hay cả hai.
    • Cacheable: Có thể lưu vào bộ nhớ đệm là ý nghĩa của thuật ngữ trên. Mặc dù Stateless giúp thông tin được chính xác hơn nhưng đồng nghĩa với việc trang web hoặc ứng dụng sẽ mất nhiều thời gian hơn rất nhiều để truy xuất thông tin, dẫn đến việc giảm hiệu suất trang web. Vậy thì bộ nhớ đệm chính là giải pháp cho trường hợp trên, với những request đã được yêu cầu từ trước thì những phản hồi sẽ nhanh hơn.
    • Layered system: Trong một số trường hợp Client và Server không giao tiếp trực tiếp với nhau mà thông qua các lớp trung gian thì chúng được gọi là layered system. Nhiệm vụ của layered system dùng để “gánh bớt” một lượng cache cho hệ thống, từ đó có thể tăng hiệu suất.

Hy vọng những thông tin trong bài viết sẽ hữu ích với bạn. Tuy nhiên, những thuật ngữ API không chỉ dừng lại ở đây, hãy tiếp tục theo dõi ở bài viết API và các thuật ngữ quan trọng BA nên biết! – Phần 2 nhé!

Nguồn tham khảo:

Bài viết API 101 – tác giả Thai Son

Nhu cầu đào tạo doanh nghiệp

BAC là đơn vị đào tạo BA đầu tiên tại Việt Nam. Đối tác chính thức của IIBA quốc tế. Ngoài các khóa học public, BAC còn có các khóa học in house dành riêng cho từng doanh nghiệp. Chương trình được thiết kế riêng theo yêu cầu của doanh nghiệp, giúp doanh nghiệp giải quyết những khó khăn và tư vấn phát triển.
 
 

CÁC KHOÁ HỌC BUSINESS ANALYST BACs.VN DÀNH CHO BẠN

Khoá học Online:

Khoá học Offline:

Tại Tp.HCM:

Tại Hà Nội:

Tham khảo lịch khai giảng TẤT CẢ các khóa học mới nhất

Ban biên tập nội dung – BAC

 

Previous Post
Next Post