You are on page 1of 25

WEB SERVICES

WEB SERVICES LÀ GÌ?


• Web service (dịch vụ web) là tập hợp các giao thức và
tiêu chuẩn mở được sử dụng để trao đổi dữ liệu giữa
các ứng dụng hoặc giữa các hệ thống.
Web service hoạt động như thế nào?
Web service hoạt động như thế nào?
Kiến trúc của Web Service

• Có hai cách để phân tích kiến trúc của một dịch vụ web:
• Dựa vào vai trò của từng thành phần trong web service.
• Dựa vào các protocol stacks của web service.
• Vai trò dịch vụ web
Có ba vai trò chính trong kiến trúc dịch vụ web:
• Service Provider: Đây là nhà cung cấp dịch vụ web. Nhà cung cấp dịch vụ triển khai
dịch vụ và cung cấp dịch vụ này trên Internet.
• Service Requestor: Đây là bất kỳ người tiêu dùng của dịch vụ web. Người yêu cầu sử
dụng một dịch vụ web bằng cách mở kết nối mạng và gửi yêu cầu XML.
• Service Registry: Đây là một thư mục logic tập trung của dịch vụ web. Registry cung
cấp một không gian tập trung, nơi các nhà phát triển có thể xuất bản các dịch vụ mới
hoặc tìm các dịch vụ hiện có. Do đó, nó có vai trò như một nhà thanh toán bù trừ tập
trung cho các công ty và dịch vụ của họ.
Tính khả dụng

• Nhiều ứng dụng đầu tư thời gian cho việc phát triển các hàm phức
tạp mà đã có sẵn trong các ứng dụng khác. Thay vì phát triển lại nó,
các web service cho phép các nhà phát triển khám phá các service
như vậy trên Web. Nó cũng thúc đẩy phát triển logic tùy chỉnh phía
client, tái sử dụng các web service và tiết kiệm thời gian.
Tái sử dụng ứng dụng đã phát triển

• Các công nghệ và thị trường đang chuyển động nhanh yêu
cầu các nhà phát triển phải tìm cách thích ứng với các yêu
cầu từ khách hàng. Tái phát triển một ứng dụng là một trong
những cách rất phổ biến bằng cách sử dụng một nền tảng
mới để hỗ trợ các tính năng mới một cách dễ dàng. Hiện nay,
thay vì phát triển một ứng dụng hoàn chỉnh từ đầu, các nhà
phát triển có thể thêm các chức năng cho bất kỳ nền tảng
nào họ muốn, sử dụng lại các module đã có bằng cách dùng
web services.
Các module được ghép nối lỏng lẻo
• Mỗi service được phát triển hoàn toàn độc lập với bất
kỳ service nào khác, hỗ trợ dễ dàng sửa đổi chúng mà
không ảnh hưởng đến một phần khác của ứng dụng.
Dễ triển khai
• Các web service được triển khai trên các máy chủ để
tạo thuận lợi cho việc sử dụng thông qua Internet.
Web service có thể được triển khai trên tường lửa
đến máy chủ thông qua Internet một cách dễ dàng vì
chúng có thể được triển khai trong các máy chủ cục
bộ.
Các loại web service
• Dịch vụ web SOAP
• Simple Object Access Protocol là một tiêu chuẩn mở, giao thức XML-based,
trao đổi thông tin bằng cách truyền message giữa web service và client. Các
thông điệp SOAP được viết bằng XML vì vậy nó trở nên độc lập với nền tảng
và nó cung cấp một phương tiện hiệu quả để chuyển dữ liệu. Client và server
bị ràng buộc với nhau thông qua Service Description Language (WSDL). Các
dịch vụ web SOAP rất khó duy trì, bất cứ khi nào WSDL thay đổi, các nhà phát
triển cần phải tạo lại từ đầu. Ta cần hiểu về WSDL dựa trên XML và client để
hiểu webservice, vì vậy nó khó để học.
Các loại web service
• RESTful web service
• REST là viết tắt của Representational State Transfer
(chuyển trạng thái đại diện) là một kiểu kiến trúc lập trình.
nó định nghĩa các quy tắc để thiết kết các web service chú
trọng vào tài nguyên hệ thống Trong kiến trúc REST mọi
thứ đều được coi là tài nguyên. Nó có thể ở dạng hiển thị,
chẳng hạn như XML, JSON hoặc HTML. Trong RESTful web
services, trạng thái của tài nguyên quan trọng hơn hành
động được thực hiện đối với tài nguyên.
Các loại web service
• Ưu điểm của các dịch vụ web RESTful như sau:
• Các RESTful web service nhanh khi chúng tiêu thụ ít tài
nguyên và băng thông hơn. Nó chỉ là dựa trên HTTP, vì vậy
có ít chi phí hơn.
• Nó có thể được viết và thực hiện trên bất kỳ nền tảng nào.
• Điều quan trọng nhất là nó cho phép các định dạng như
HTML, XML, văn bản thuần túy và JSON.
REST API
REST API?
• REST API (còn được biết với tên gọi RESTful API) là một giao diện lập
trình ứng dụng (API) mà tuân thủ các ràng buộc và quy ước kiến
trúc REST được sử dụng trong việc giao tiếp giữa client và
server. REST là viết tắt của REpresentational State Transfer, nó được
tạo ra bởi nhà khoa học máy tính Roy Fielding.
REST API?
REST API?
Hai thành phần trong REST API
• API:
• API (Application Programming Interface) dịch ra là giao
diện lập trình ứng dụng. Thật ra cái giao diện này không
phải cho người dùng cuối mà dành cho các nhà phát triển
(developer).
Hai thành phần trong REST API
• REST:
• REST (REpresentational State Transfer) nghĩa là một đại
diện cho sự chuyển đổi dữ liệu. Nghĩa là, trong kiến trúc
này client và server hoàn toàn độc lập, chúng không biết
gì về nhau. Mỗi một request REST API đều không mang
theo trạng thái trước đó (stateless). Như vậy để đôi bên
trao đổi state, chúng sẽ buộc thông qua các resources.
Các resource này chính là phần đại diện cho sự thay đổi
dữ liệu.
Hai thành phần trong REST API:
REpresentational State Transfer
Request và Response trong REST API
• Methods: Phương thức
• GET: Trả về một Resource hoặc một danh sách Resource.
• POST: Tạo mới một Resource.
• PUT: Cập nhật thông tin cho Resource (toàn bộ resource).
• PATCH: Cật nhật thông tin cho resourse (một phần resource).
• DELETE: Xoá một Resource.
• Nếu bạn từng nghe qua CRUD APIs thì chúng đại diện
cho Create, Read, Update và Delete một resource nào đó.
Request và Response trong REST API
• Header: Authentication và quy định kiểu dữ liệu trả về:
• Hiện có 3 cơ chế Authentication chính:
• HTTP Basic
• JSON Web Token (JWT)
• OAuth2
• Ngoài ra Header còn giúp client chỉ định được loại content cần trả về từ server –
content type. Việc này được thực hiện thông qua phần Accept trong header. Giá
trị của nó thường là MIME type:
• image — image/png, image/jpeg, image/gif
• audio — audio/wav, audio/mpeg
• video — video/mp4, video/ogg
• application — application/json, application/pdf, application/xml, application/octet-stream
Request và Response trong REST API
• Ví Dụ:
Request và Response trong REST API
• Status Code
Request và Response trong REST API
• Status Code:
• 200 OK – Trả về thành công cho những phương thức GET, PUT, PATCH hoặc DELETE.
• 201 Created – Trả về khi một Resouce vừa được tạo thành công.
• 204 No Content – Trả về khi Resource xoá thành công.
• 304 Not Modified – Client có thể sử dụng dữ liệu cache, resource server không đổi gì.
• 400 Bad Request – Request không hợp lệ
• 401 Unauthorized – Request cần có xác thực.
• 403 Forbidden – bị từ chối không cho phép.
• 404 Not Found – Không tìm thấy resource từ URI
• 405 Method Not Allowed – Phương thức không cho phép với user hiện tại.
• 410 Gone – Resource không còn tồn tại, Version cũ đã không còn hỗ trợ.
• 415 Unsupported Media Type – Không hỗ trợ kiểu Resource này.
• 422 Unprocessable Entity – Dữ liệu không được xác thực
• 429 Too Many Requests – Request bị từ chối do bị giới hạn

You might also like