Tìm hiểu về web service và api


Wed Mar 07 2018


tìm hiểu về web service và api

Trước khi đến với khái niệm Web service, hãy cùng tìm hiểu về lịch sử world wide web.

Trong những ngày đầu của world wide web, web client chạy trên client computer, giúp người dùng có những thông tin trên internet.Như một số web tương tự liên kết trên, website thời kì đầu của internet đa số đều thuần html (pure html).

Công nghệ web càng phát triển theo thời gian, qua từng thời gian, đã có những website thân thiện với người dùng hơn. Không lâu sau, ajax, phương thức tải dữ liệu từ server lên mà không cần phải load lại trang xuất hiện.

Tham khảo một trong những website thời kì đầu internet http://toastytech.com

Nhưng như thế vẫn chưa đủ với những website hiện nay . Một trong những ví dụ cụ thể web-based email như gmail hay yahoo mail luôn cần trang web của họ tải dữ liệu liên tục mà không cần load lại trang. Đó là sự ra đời của web service.

Web service là gì?

Nói đơn giản, web service là một lớp (framework) giữa hai máy tính, giúp hai máy tính có thể tương tác với nhau qua mạng. Nói cách khác, web service cho phép một chương trình máy tính có thể nói chuyện với một trang web thay vì người dùng tự dùng trình duyệt để truy cập trang web.

web service

Một mô hình để thể hiện sự kết nối này: client (người dùng – máy tính 1) gửi tin nhắn đến server (máy chủ – máy tính 2) và server hồi âm lại tin nhắn đó nhờ có web service. Web service hiện nay đa số giao tiếp qua cơ chế HTTP, nhưng format dữ liệu khi gửi và nhận thì hoàn toàn khác nhau.

Nếu bạn là một lập trình viên, và muốn sử dụng web service, bạn cần phải biết về API.

API là gì?

Một ví dụ về một API

Khi bạn sử dụng một ứng dụng trên điện thoại di động, ứng dụng kết nối Internet và gửi dữ liệu tới máy chủ. Máy chủ sau đó lấy ra dữ liệu đó, diễn giải nó, thực hiện các hành động cần thiết và gửi nó trở lại điện thoại của bạn. Ứng dụng sau đó giải thích dữ liệu đó và trình bày cho bạn thông tin bạn muốn theo cách có thể đọc được. Đây là những gì một API là - tất cả điều này xảy ra thông qua API.

Trước khi đến với khái niệm chuyên môn, chúng ta hãy lấy một ví dụ quen thuộc. Hãy tưởng tượng bạn đang ngồi trong nhà hàng và chuẩn bị đặt món. Đầu bếp - "hệ thống" sẽ nấu thức ăn cho bạn. Cái còn thiếu là liên kết giữa bạn và đầu bếp ấy. Bạn không có khả năng biết bếp là khu nào trong nhà hàng để xông thẳng vào và gọi món.Đó là lúc bạn cần đến người phục vụ - API. Người bồi bàn này sẽ là người đưa tin, (hay thông thường chúng ta thường gọi là request - yêu cầu) của bạn nói với đầu bếp biết phải làm gì. Người đầu bếp - “hệ thống” biết phải nấu cho bạn cái gì và đưa cho người bồi bàn sau khi đã hoàn thành. Sau đó, người bồi bàn này sẽ mang thứ bạn cần – thức ăn/ thông tin (hay chúng ta hay gọi là response).

Một ví dụ khác về API

Bạn có thể đã quen thuộc với quá trình tìm kiếm các chuyến bay trực tuyến. Cũng giống như nhà hàng, bạn có nhiều lựa chọn để lựa chọn, bao gồm các thành phố khác nhau, ngày khởi hành và ngày trở lại, và nhiều hơn nữa.Hãy tưởng tượng bạn đang đặt phòng bạn đang bay trên một trang web của hãng hàng không. Bạn chọn một thành phố, ngày khởi hành, ngày về, hạng ghế,...Để đặt chuyến bay của bạn, bạn tương tác với trang web của hãng hàng không để truy cập vào cơ sở dữ liệu của họ và xem liệu có ghế nào phù hợp với nhu cầu của bạn và chi phí là bao nhiêu.

Tuy nhiên, nếu bạn không sử dụng trang web trực tiếp hãng hàng không (ví dụ: https://www.vietnamairlines.com/vi/ ) để mua vé thì mà sử dụng dịch vụ thứ ba như Traveloka hoặc Booking? Nó có sự khác biệt?

Câu trả lời là có.

Khi bạn mua vé trên web chính thống của Vietnamairlines, vé bạn mua sẽ được tương tác trực tiếp với dữ liệu, database của hãng. Trong khi đó, nếu mua tại Traveloka, hoặc Booking, họ sẽ thay mặt chúng ta gửi yêu cầu đến API của Vietnamairlines, nhận dữ liệu về (response) và hiển thị thông tin cho chúng ta.Nói cách khác, Traveloka và Booking ở đây đóng vai trò là cầu nối cho khách hàng (chúng ta) được tiếp cận với dữ liệu của Vietnamairlines.

Những gì API cung cấp cũng là một lớp bảo mật. Dữ liệu điện thoại của bạn không bao giờ được tiếp xúc hoàn toàn với máy chủ. Tương tự, máy chủ không bao giờ được phơi bày hoàn toàn với điện thoại của bạn. Thay vào đó, mỗi giao tiếp (communication) với các gói dữ liệu nhỏ (packet), chỉ chia sẻ những thứ cần thiết - giống như đặt hàng. Bạn nói với nhà hàng/ traveloka/ booking những gì bạn muốn ăn, muốn đặt chỗ, họ nói cho bên cung cấp biết những gì bạn cần và cho bạn những gì bạn muốn.

API thời hiện đại

Các API trở nên có giá trị đến mức chúng chiếm một phần lớn doanh thu của doanh nghiệp. Các công ty lớn như Google, eBay, Salesforce.com, Amazon và Expedia chỉ là một vài trong số các công ty kiếm tiền từ API của họ. Những gì "nền kinh tế API" đề cập đến là thị trường của các API này.

 

Một trong những website xài API rất thân thuộc với chúng ta đó là Google Drive. Nếu bạn chưa biết về website hữu ích này, hãy đọc ngay bài hướng dẫn sử dụng Google Drive của Stream Hub.

Những khái niệm khác về web service

Bạn có thể đã nắm về API, nhưng để "request" lên web service và nhận "response", bạn cần phải nắm những khái niệm sau:

web service

Request and response

Message format: SOAP, XML, JSON

Request syntax: named method, uniform resource identifier (URL)

Parameter names and data types

Requesting an action

named methods

HTTP verbs (POST, GET, PUT, PATCH, DELETE)

Authentication

Username and password

Authenticated token

Receiving the dataformat

SOAP, XML, JSON?Metadata: data structure

content: the actual data

REST, or RESTful Architecture

REST là viết tắt của Reppresentational State Transfer. REST là kiến ​​trúc dựa trên tiêu chuẩn web và sử dụng Giao thức HTTP.

Tìm hiểu trước cách hiện thực REST với web service bằng Nodejs tại liên kết sau .

 

Client and server programming language

Java, Nodejs, PHP, ASP.NET

Trong những bài sau, Stream Hub sẽ giới thiệu cụ thể về từng khái niệm nhỏ trong web service và cách hiện thực chúng.



avatar
Curious developer
Tech seeker
quang cao dat link stream hub