6

Trong bài viết này, tôi sẽ chứng minh rằng thế nào chúng ta có thể làm cho phương pháp Web API của chúng tôi queryable vì vậy người dùng có thể áp dụng khai thác truy vấn và các biểu thức để lọc dữ liệu.

Chúng tôi sẽ sử dụng thư viện OData cho API Web ASP.NET có thuộc tính [Truy vấn] được cung cấp, tạo điều kiện thuận lợi trong việc đưa ra các truy vấn.

1. Tạo dự án API Web ASP.Net

2. Thêm lớp mô hình mẫu xác định các thuộc tính

3. Trong ví dụ này, tôi đã tạo một lớp Phiên như sau

 

4. Bây giờ thêm một Trình điều khiển phiên sẽ chứa các phương thức Nhận, Đăng, Đặt, Xóa cho các hoạt động CRUD.

5. Nó sẽ tạo ra một bộ điều khiển trống. Bây giờ chúng tôi sẽ chỉ định  phương thức Get và trả về danh sách phiên làm truy vấn.

6. Bây giờ thêm tham chiếu OData từ Trình quản lý gói Nuget bằng cách tìm kiếm dưới dạng web api odata và nhấp vào Cài đặt trên Microsoft ASP.NET Web API 2 OData

7. Khi bạn cài đặt, Nó sẽ yêu cầu bạn chấp nhận thỏa thuận cấp phép, nhấp vào Tôi chấp nhận và tiếp tục

8. Bây giờ thêm thuộc tính [Truy vấn] trên phương thức GetSession .

Thế là xong, xây dựng giải pháp và thử nghiệm.

9. Mở fiddler và chọn NHẬN Phương thức HTTP và điều hướng đến URL tức là http: // [youraddress: port] / api / Phiên

 

10. Khi bạn nhấn URI ở trên, nó sẽ hiển thị cho bạn danh sách phiên hoàn chỉnh ở định dạng JSON như sau

11. Bây giờ bạn có thể áp dụng các toán tử truy vấn theo yêu cầu và lọc dữ liệu của bạn

Sau đây là một số toán tử truy vấn bạn có thể sử dụng để đưa ra các truy vấn

$ top = n : Chỉ trả về n thực thể đầu tiên trong một tập thực thể (hoặc theo thuật ngữ Atom, n mục đầu tiên trong nguồn cấp dữ liệu).

$ Skip = n : Bỏ qua n thực thể đầu tiên trong một tập thực thể. Sử dụng tùy chọn này cho phép khách hàng truy xuất một loạt các trang riêng biệt cho các yêu cầu tiếp theo.

$ format : Xác định liệu dữ liệu sẽ được trả về ở định dạng JSON / AtomPub dựa trên XML. (Mặc định là Atom / AtomPub.)

$ orderby =: Kết quả đơn hàng, theo thứ tự tăng dần hoặc giảm dần, theo giá trị của một hoặc nhiều thuộc tính trong các kết quả đó.

$ filter =: Chỉ trả về các thực thể khớp với biểu thức đã chỉ định.

$ select =: Chỉ trả về các thuộc tính được chỉ định trong một thực thể.

$ inlinecount: Trả về máy chủ tính toán số lượng mục được tạo bởi yêu cầu truy vấn.

Thí dụ

Để chọn top 2, URI của tôi sẽ giống như http: // [youraddress; portNo [/ api / Phiên? $ Top = 2

Kết quả:

 

|