Bài 68: Xây dựng Web Service dùng API RESTful Service(phần 1)

Innovate Trading System (Kênh đầu tư lợi nhuận rất cao), các bạn nào quan tâm thì vào đây đầu tư nhé:

 

Nếu bạn nào muốn rèn luyện thêm lập trình Java, lập trình Android, lập trình Webservice với tổng thời lượng học >80 giờ thì có thể đăng ký học theo các link sau:

1) Lập trình java trong 4 tuần – 19 giờ(chỉ dành cho những ai CHƯA BIẾT GÌ VỀ LẬP TRÌNH hoặc đã biết lơ mơ về Java, lý thuyết và các bài tập phong phú tạo nền tảng lập trình Android và các hướng khác liên quan tới Java):
https://kyna.vn/lap-trinh-java-trong-4-tuan/325931
2) Lập trình Android cơ bản (>24 giờ học) – toàn bộ kiến thức về Android cơ bản:
https://kyna.vn/lap-trinh-android-co-ban/325931
3) Lập trình Android nâng cao (23 giờ học) – toàn bộ kiến thức về Android nâng cao:
https://kyna.vn/lap-trinh-android-nang-cao/325931
4) Lập trình Webservice cho Di Động – 14 giờ (dành cho những ai ĐÃ BIẾT ANDROID), những ai chưa biết Android tuyệt đối không đăng ký, khóa học hướng dẫn tỉ mỉ từ A->Z để có thể xây dựng được một phần mềm hoàn chỉnh tương tác client-server:
https://kyna.vn/lap-trinh-webservice-cho-di-dong/325931

Ở các bài trước (.Net Web Service & KSOAP API) Tui có trình bày về cách tạo và sử dụng Web Service bằng .asmx, nó có một số hạn chế nhất định. Trong bài này Tui sẽ trình bày cách tạo web service dùng API RESTful Service, một nền tảng mới được hỗ trợ từ .net version 4.0 trở lên. Những bạn lập trình về thiết bị di động cần phải hiểu được các khái niệm cũng như cơ chế vận hành sử dụng API RESTful, theo Tui thấy nó khá hay và rất tiện lợi trong việc triển khai các dự án liên quan tới tương tác dữ liệu trên Server.

Trước khi triển khai webservice, các bạn cần đọc và hiểu khái niệm qua 4 mục dưới đây:

  1. Giới thiệu về ASP.NET Web API
  2. Giới thiệu cơ bản về RESTful Service
  3. Các nguyên tắc cơ bản để tạo ra RESTful Service
  4. Xây dựng Web Service

1.Giới thiệu về ASP.NET Web API

ASP.NET Web API là ?

Là framework giúp chúng ta tạo ra các Web API API trên nền web (HTTP).

Web API là các dịch vụ Web (Web service) được xây dựng dựa trên HTTP sử dụng mô hình lập trình convention (như ASP.NET MVC).

h68-0Đặc điểm Web API (.NET 4.0 trở lên)

  • Giúp cho việc xây dựng các HTTP service rất đơn giản, nhanh chóng
  • Mã nguồn mở (Open Source) và có thể được sử dụng bởi bất kì client nào hỗ trợ XML, JSON.
  • Hỗ trợ đầy đủ các thành phần HTTP: URI, request/response headers, caching, versioning, content formats.
  • Có thể host trong ứng dụng hoặc trên IIS.
  • Kiến trúc lý tưởng cho các thiết bị có băng thông giới hạn như các thiết bị di động.
  • Định dạng dữ liệu có thể là JSON, XML hoặc một kiểu dữ liệu bất kỳ.
  • Làm mới và hiện đại hóa các mẫu dự án mặc định
  • Mẫu dự án trên điện thoại di động
  • Nhiều tính năng mới để hỗ trợ các ứng dụng di động
  • Tùy chỉnh sinh mã(code).
  • Tăng cường hỗ trợ cho các phương pháp bất đồng bộ
  • Đọc danh sách đầy đủ tính năng trong các ghi chú phát hành

Ưu điểm của Web API

  • Cấu hình đơn giản hơn nhiều so với WCF.
  • Hiệu suất(performance) cao.
  • Hỗ trợ RESTfull đầy đủ.
  • Hỗ trợ đầy đủ các thành phần MVC như: routing, controller, action result, filter, model binder, IoC container, dependency injection, unit test, …
  • Mã nguồn mở (Open source).

2. Giới thiệu cơ bản về RESTful Service

-Là một dịch vụ web đơn giản sử dụng HTTP và tính chất của REST.

-Nó tuân thủ theo 4 nguyên tắc thiết kế cơ bản sau:

  • Sử dụng các phương thức HTTP một cách rõ ràng
  • Phi trạng thái
  • Hiển thị cấu trúc thư mục như URls
  • Chuyển đổi linh hoạt JavaScript Object Notation (JSON) và XML hoặc cả hai.

3. Nguyên tắc cơ bản để tạo ra RESTful Service

4 nguyên tắc thiết kế cơ bản sau:

Nguyên tắc 1: Sử dụng các phương thức HTTP một cách rõ rng

Thiết lập một ánh xạ 1-1 giữa các hành động: tạo, đọc, cập nhật và xoá (CRUD) các quá trình vận hành và các phương thức HTTP:

  • POST (HttpPost) – Tạo một tài nguyên trên máy chủ
  • GET (HttpGet) – Truy xuất một tài nguyên
  • PUT (HttpPut) – Thay đổi trạng thái một tài nguyên hoặc để cập nhật nó
  • DELETE (HttpDelete) – Huỷ bỏ hoặc xoá một tài nguyên

Nguyên tắc 2: Phi trạng thái

Ta xem mô hình giữa trạng thái và phi trạng thái để dễ so sánh:

Mô hình phi trạng thái:

h68-2Mô hình trạng thái:

h68-1Nguyên tắc 3: Hiển thị cấu trúc thư mục như URls

Cấu trúc địa chỉ của RESTful service:

  • Giấu các đuôi tài liệu mở rộng của bản gốc trong máy chủ (.jsp, .php, .asp).
  • Để mọi thứ là chữ thường (thực ra là không phân biệt, nhưng cũng nên tuân thủ để khỏi phải nhớ HOA-thường lung tung).
  • Thay thế các khoảng trống bằng gạch chân hoặc gạch nối (một trong hai loại).
  • Tránh các chuỗi yêu cầu.
  • Thay vì sử dụng mã (404 Not Found) khi yêu cầu địa chỉ cho một phần đường dẫn thì luôn luôn cung cấp một trang mặc định hoặc tài nguyên như một phản hồi.

Nguyên tắc 4: Chuyển đổi JavaScript Object Notation (JSON) và XML hoặc cả hai.

  • Là một bản tóm tắt các thuộc tính của những thứ trong mô hình dữ liệu hệ thống.
  • Định dạng dữ liệu mà ứng dụng và trao đổi dịch vụ trong mức đáp ứng yêu cầu/ phản hồi hoặc trong phần thân của HTTP.
  • Các chủ thể trong mô hình dữ liệu có liên quan với nhau.
  • Cấu trúc dịch vụ sao cho nó tận dụng được phần đầu chấp nhận HTTP có sẵn bên trong – một loại MIME

4.Xây dựng Web Service

Tui liệt kê các bước tương đối (chi tiết sẽ trình bày trong bài kế tiếp):

Bước 1:

Khởi động Visual Studio → tạo một project ASP.NET Web Application và chọn template Web API.

Bước 2:

Tạo Data Model sử dụng Entity Framework để Web API service có thể tương tác CRUD (Create, Read, Update, Delete) dữ liệu được (không tạo cũng được).

Bước 3: Tạo ra các Web API

Nhấp chuột phải vào thư mục Controllers và chọn thêm controller.

  • Web API 2 Controller Empty: tự viết các phương thức từ đầu.
  • Web API 2 Controller with read/write actions: phát sinh các phương thức ví dụ để bạn có thể biết cách viết các service này.

Bước 4: Chạy thử và kiểm tra.


Bài kế tiếp Tui sẽ trình bày chi tiết cách tạo Web API service, cách cấu hình cũng như sử dụng Service.

7 thoughts on “Bài 68: Xây dựng Web Service dùng API RESTful Service(phần 1)”

Leave a Reply