Bài giảng Xây dựng và triển khai Web Service cho ứng dụng di động Bài 2: Các công nghệ dùng để xây dựng Web Service cho ứng dụng di động cung cấp cho người học các kiến thức tổng quan về LinQ, hướng dẫn xây dựng Web Service dùng API RESTful Service. c
Trường ĐH Khoa Học Tự Nhiên Tp Hồ Chí Minh TRUNG TÂM TIN HỌC Bài 2: Các công nghệ dùng để xây dựng Web Service cho ứng dụng di động – Phần Ngành Mạng & Thiết bị di động www.t3h.vn 2015 Nội dung Tìm hiểu LinQ • Tổng quan • Mơi trường hỗ trợ LinQ • Cách truy vấn: Dùng LinQ đọc danh sách đối tượng thực truy vấn Dùng LinQ đọc liệu XML thực truy vấn Hướng dẫn xây dựng Web Service dùng API RESTful Service Xây dựng và triển khai Web Service cho ứng dụng di động 1.1 Tổng quan LinQ là gì? • LINQ là tên viết tắt của Language Integrated Query (ngôn ngữ truy vấn thơng minh) • Là tập hợp thành phần mở rộng cho phép viết câu truy vấn liệu ngơn ngữ lập trình, C# VB.NET • Là mơ hình ORM (Object-relational mapping) hỗ trợ lập trình CSDL hướng đối tượng mạnh mẽ • • Cú pháp đơn giản, dễ hiểu Có thể hiển thị, binding trực tiếp lên giao diện Xây dựng và triển khai Web Service cho ứng dụng di động 1.1 Tổng quan LinQ là gì? Chú ý: • LINQ khơng làm tăng tốc độ thực thi chương trình mà nó giúp viết mã lệnh nhanh và dễ quản lý mã • Có thể kết hợp LINQ với ADO.Net để truy vấn Xây dựng và triển khai Web Service cho ứng dụng di động 1.1 Tổng quan Mô hình kiến trúc LinQ Xây dựng và triển khai Web Service cho ứng dụng di động 1.1 Tổng quan Có các loại LinQ sau: • • LINQ To Objects LINQ To XML (XLINQ) Có thể kết hợp với ADO.Net để truy vấn: • • • LINQ To Dataset LINQ To SQL (DLINQ) LINQ To Entities Xây dựng và triển khai Web Service cho ứng dụng di đợng 1.2 Mơi trường hỗ trợ LinQ • Có nhiều công cụ hỗ trợ LinQ, Visual Studio là công cụ hỗ trợ sử dụng phổ biến và mạnh mẽ (từ • • Visual Studio 2008 trở đi) LinQ hỗ trợ nền tảng NET 3.5 trở lên Để sử dụng LINQ phải khai báo thư viện System.LinQ Xây dựng và triển khai Web Service cho ứng dụng di động 1.3 Cách truy vấn LINQ có kiểu truy vấn LinQ: • Lamda (Method) Syntax Ví dụ: var doDaiToiDas = dodais.Where( d => d.length > 10); • Query (Comprehension) Syntax Ví dụ: var doDaiToiDas = from d in dodais where d.length > 10; Xây dựng và triển khai Web Service cho ứng dụng di động 1.3 Cách truy vấn Các biểu thức truy vấn (Query Expressions) của LINQ với các từ khóa Select, From, Where và OrderBy tương tự cú pháp truy vấn của SQL Ví dụ: // Tạo một mảng kiểu int chứa các điểm số int[] diems = new int[] { 7, 8, 10, 9}; // Sử dụng cú pháp truy vấn của LINQ để lấy danh sách điểm điểm IEnumerable diemQuery = from diem in diems where diem > 80 select diem ; // Xử lý hiển thị màn hình foreach (int i in diemQuery) { Console.Write(i + " "); } Console.ReadLine(); Xây dựng và triển khai Web Service cho ứng dụng di động 1.3 Cách truy vấn Các phương thức truy vấn mở rộng (Extension Methods) • Các phương thức này chỉ khai báo các lớp tĩnh (static class) • Được sử dụng để biên dịch các biểu thức truy vấn (Query Expressions) thành các phương thức gọi truyền thống (object- oriented) Xây dựng và triển khai Web Service cho ứng dụng di động 10 1.3 Cách truy vấn LINQ To XML • Sử dụng LINQ với mục đích truy vấn file XML • Có các phương thức hỗ trợ sau: Xattribute, XCData, Xcomment, Xcontainer, Xdeclaration, Xdocument, XDocumentType, Xelement, Xname, Xnamespace, Xnode, XNodeEqualityComparer, XObjectChangeEventArgs, XNodeDocumentOrderComparer, Xobject, XObjectChange, XObjectEventHandler, XProcessingInstruction, Xtext Xây dựng và triển khai Web Service cho ứng dụng di động 30 1.3 Cách truy vấn LINQ To XML Ví dụ sử dụng LINQ để đọc tập tin XML: //Khai báo các thư viện using System; using System.Collections.Generic; using System.Linq; using System.Xml.Linq; Xây dựng và triển khai Web Service cho ứng dụng di động 31 1.3 Cách truy vấn LINQ To XML Ví dụ sử dụng LINQ để đọc tập tin XML: namespace LINQtoXML { class MinhHoaDocXML { static void Main(string[] args) { string myXML = @" Account SalesPre-Sales Marketing "; XDocument xdoc = new XDocument(); xdoc = XDocument.Parse(myXML); var result = xdoc.Element("Departments").Descendants(); foreach (XElement item in result) { Console.WriteLine("Department Name - " + item.Value); } } }} Xây dựng và triển khai Web Service cho ứng dụng di đợng 32 Nội dung Tìm hiểu LinQ Hướng dẫn xây dựng Web Service dùng API RESTful Service • • • • Giới thiệu về ASP.NET Web API Giới thiệu bản về RESTful Service Các nguyên tắc bản để tạo RESTful Service Xây dựng Web Service Xây dựng và triển khai Web Service cho ứng dụng di động 33 Giới thiệu ASP.NET Web API ASP.NET Web API gì? Là framework giúp tạo Web API - API nền web (HTTP) Web API dịch vụ Web (Web service) xây dựng dựa HTTP sử dụng mô hình lập trình convention (như ASP.NET MVC) Xây dựng và triển khai Web Service cho ứng dụng di động 34 Giới thiệu ASP.NET Web API Đặc điểm Web API (.NET 4.0 trở lên) • • Giúp cho việc xây dựng HTTP service đơn giản, nhanh chóng Mã ng̀n mở (Open Source) có thể sử dụng client hỗ trợ XML, JSON • Hỗ trợ đầy đủ thành phần HTTP: URI, request/response headers, caching, versioning, content formats • • Có thể host ứng dụng IIS Kiến trúc lý tưởng cho thiết bị có băng thơng giới hạn các thiết bị di động • Định dạng liệu có thể JSON, XML kiểu liệu Xây dựng và triển khai Web Service cho ứng dụng di động 35 Giới thiệu ASP.NET Web API Đặc điểm Web API (.NET 4.0 trở lên) • • • • • • Làm đại hóa mẫu dự án mặc định Mẫu dự án điện thoại di động Nhiều tính để hỗ trợ ứng dụng di động Tùy chỉnh sinh mã (code) Tăng cường hỗ trợ cho phương pháp bất đồng Đọc danh sách đầy đủ tính ghi phát hành Xây dựng và triển khai Web Service cho ứng dụng di động 36 Giới thiệu ASP.NET Web API Ưu điểm của Web API • • • • Cấu hình đơn giả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ã ng̀n mở (Open source) Xây dựng và triển khai Web Service cho ứng dụng di động 37 2 Giới thiệu RESTful Service - Là dịch vụ web đơn giản sử dụng HTTP và tính chất của REST - Nó tuân thủ theo nguyên tắc thiết kế bản sau: • • • • Sử dụng phương thức HTTP cách rõ ràng Phi trạng thái Hiển thị cấu trúc thư mục URls Chuyển đổi JavaScript Object Notation (JSON) XML cả hai Xây dựng và triển khai Web Service cho ứng dụng di động 38 Nguyên tắc để tạo RESTful Service nguyên tắc thiết kế sau: • Sử dụng phương thức HTTP cách rõ ràng Thiết lập ánh xạ 1-1 hành động: tạo, đọc, cập nhật xố (CRUD) q trình vận hành phương thức HTTP: POST - Tạo tài nguyên máy chủ GET - Truy xuất tài nguyên PUT - Thay đổi trạng thái tài nguyên để cập nhật DELETE - Huỷ bỏ xoá tài nguyên Xây dựng và triển khai Web Service cho ứng dụng di động 39 Nguyên tắc để tạo RESTful Service nguyên tắc thiết kế sau: • Phi trạng thái Ví dụ: Thiết kế trạng thái: Thiết kế phi trạng thái: Xây dựng và triển khai Web Service cho ứng dụng di động 40 Nguyên tắc để tạo RESTful Service nguyên tắc thiết kế sau: • Hiển thị cấu trúc thư mục URls Cấu trúc địa chỉ của RESTful service: • Giấu tài liệu mở rộng của bản gốc máy chủ (.jsp, php, asp) • • Để thứ chữ thường Thay thế khoảng trống bằng gạch chân gạch nối (một hai loại) • • Tránh chuỗi yêu cầu Thay sử dụng mã (404 Not Found) yêu cầu địa chỉ cho phần đường dẫn thì luôn cung cấp trang mặc định tài nguyên phản hồi Xây dựng và triển khai Web Service cho ứng dụng di động 41 Nguyên tắc để tạo RESTful Service nguyên tắc thiết kế sau: • Chuyển đổi JavaScript Object Notation (JSON) XML hoặc hai Là bản tóm tắt các thuộc tính của thứ mô hình liệu hệ thống Định dạng liệu mà ứng dụng và trao đổi dịch vụ mức đáp ứng yêu cầu/ phản hồi phần thân của HTTP Các chủ thể mô hình liệu có liên quan với Cấu trúc dịch vụ cho nó tận dụng phần đầu chấp nhận HTTP có sẵn bên – loại MIME Xây dựng và triển khai Web Service cho ứng dụng di động 42 Xây dựng Web Service Bước 1: Khởi động Visual Studio → tạo project ASP.NET Web Application 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) liệu Bước 3: Tạo Web API Nhấp chuột phải vào thư mục Controllers chọn thêm controller •Web API Controller Empty: tự viết phương thức từ đầu •Web API Controller with read/write actions: phát sinh phương thức ví dụ để bạn có thể biết cách viết service Bước 4: Chạy thử và kiểm tra Xây dựng và triển khai Web Service cho ứng dụng di động 43 Xây dựng và triển khai Web Service cho ứng dụng di động 44 ... với ADO.Net để truy vấn Xây dựng và triển khai Web Service cho ứng dụng di động 1.1 Tổng quan Mô hình kiến trúc LinQ Xây dựng và triển khai Web Service cho ứng dụng di động 1.1 Tổng... và triển khai Web Service cho ứng dụng di động 25 1.3 Cách truy vấn Các toán tử truy vấn (Query Operators) • Equality SequenceEqual Xây dựng và triển khai Web Service cho ứng dụng di. .. khai Web Service cho ứng dụng di động 21 1.3 Cách truy vấn Các toán tử truy vấn (Query Operators) • Quantifier Operations All Any Contains Xây dựng và triển khai Web Service cho ứng