Chủ đề của PRN232 - Xây dựng ứng dụng back-end đa nền tảng với .NET

PRN232 Chương 5 - OData trong ASP.NET Core Web API

Chương 5 môn PRN232 trình bày giao thức OData để dựng API truy vấn được và tương tác được: gói NuGet Microsoft.AspNetCore.OData, ODataConventionModelBuilder sinh Entity Data Model theo quy ước, khái niệm Entity Set, các tuỳ chọn truy vấn hệ thống $filter với hàm endswith, $select, $expand, $orderby, $count, $skip và $top, endpoint $metadata mô tả mô hình dữ liệu, cùng cách dùng đúng động từ HTTP cho thao tác tạo, sửa và xoá thực thể. Trọn bộ câu hỏi trắc nghiệm có giải thích.

Xem danh sách câu hỏi12 câu hỏi100% có giải thích

Bắt đầu bằng Chế độ học nếu bạn muốn đáp án và giải thích hiện ngay sau mỗi câu — không bấm giờ, dừng lúc nào cũng được. Chọn Thi thử khi muốn biết mình đang ở đâu: có bấm giờ, chấm điểm ở cuối, và giải thích chỉ mở sau khi nộp.

Học ngân hàng câu hỏi của chủ đề

Luyện tập theo chủ đề này

12Câu hỏi hiện có

Câu hỏi của chủ đề

12/12 câuHết danh sách
AGET /Categories(1)?$select=Products
BGET /Categories(1)?$expand=Products
CGET /Categories(1),/Products
DGET /Categories(1)/Products?$fetch=all
Lời giải
Để lấy một đối tượng Category và tất cả các đối tượng Product liên quan trong một yêu cầu, bạn cần sử dụng truy vấn OData phù hợp. Trong trường hợp này, bạn có thể sử dụng truy vấn GET /Categories(1)?$expand=Products. Điều này cho phép bạn lấy một đối tượng Category với ID là 1 và tất cả các đối tượng Product liên quan. Cụ thể, $expand là một tham số trong OData cho phép bạn lấy các đối tượng liên quan trong một yêu cầu. Ví dụ, GET /Categories(1)?$expand=Products sẽ trả về một đối tượng Category với ID là 1 và tất cả các đối tượng Product liên quan.
Mở trang câu hỏi này →
ACount the number of properties on an entity.
BRetrieve the total number of items in a collection, often alongside the data itself.
CLimit the number of results returned.
DCount the number of related entities.
Lời giải
Tùy chọn truy vấn $count được sử dụng để lấy tổng số lượng mục trong một tập hợp, thường đi kèm với dữ liệu chính.
Mở trang câu hỏi này →
Đề bài
var builder = new ODataConventionModelBuilder();
builder.EntitySet<Product>("Products");
builder.EntitySet<Category>("Categories");
return builder.GetEdmModel();
AIt creates two entity sets, Products and Categories, and infers their properties and relationships by convention from the C# classes.
BIt defines two complex types that cannot be queried directly.
CIt creates an empty model and waits for the database to provide the schema.
DIt registers two controllers named Products and Categories.
Lời giải
Mã code sử dụng ODataModelBuilder để xây dựng EDM (Entity Data Model). Nó tạo ra hai tập hợp thực thể, Products và Categories, và tự động xác định các thuộc tính và mối quan hệ của chúng dựa trên các lớp C#. Điều này có nghĩa là khi bạn tạo một lớp C# để mô hình hóa một thực thể, ODataModelBuilder sẽ tự động tạo ra các tập hợp thực thể tương ứng và xác định các thuộc tính và mối quan hệ của chúng. Điều này giúp giảm thiểu công việc thủ công khi xây dựng EDM và tạo điều kiện thuận lợi cho việc phát triển ứng dụng dựa trên dữ liệu.
Mở trang câu hỏi này →
A/$metadata
B/$help
C/$schema
D/$info
Lời giải
Endpoints của một dịch vụ OData thường được sử dụng để truy cập dữ liệu. Để biết thông tin chi tiết về cấu trúc dữ liệu của dịch vụ, chúng ta cần truy cập vào endpoint nào? Dưới đây là một số lựa chọn.
Mở trang câu hỏi này →
AGET
BPUT
CPOST
DMERGE
Lời giải
Để tạo một thực thể mới trong một dịch vụ OData, bạn cần sử dụng phương thức HTTP nào?
Mở trang câu hỏi này →
6To delete a product with an ID of 123, which OData request is correct?4 lựa chọnTrung bình67% trả lời đúng
APOST /Products?$filter=Id eq 123
BDELETE /Products(123)
CGET /Products(123)?action=delete
DREMOVE /Products/123
Lời giải
Để xóa một sản phẩm có ID là 123, chúng ta cần sử dụng phương thức HTTP phù hợp. Trong OData, phương thức HTTP để xóa một tài nguyên là DELETE. Khi sử dụng DELETE, chúng ta cần cung cấp đường dẫn đến tài nguyên cần xóa. Trong trường hợp này, đường dẫn đến sản phẩm có ID là 123 là /Products(123). Vì vậy, câu trả lời đúng là DELETE /Products(123).
Mở trang câu hỏi này →
7What is an "Entity Set"?4 lựa chọnDễ100% trả lời đúng
AThe set of properties that make up an entity's key.
BA named collection of entities of a specific Entity Type, like Products being a collection of Product entities.
CThe schema version of the data model.
DA set of validation rules for an entity.
Lời giải
Một tập hợp các thực thể của một loại thực thể cụ thể, chẳng hạn như Products là một tập hợp các thực thể Product. Tập hợp thực thể này được xác định bởi tên và chứa các thực thể có thuộc tính tương tự. Ví dụ, nếu bạn có một tập hợp thực thể Product, thì mỗi thực thể trong tập hợp này đều có thuộc tính như tên sản phẩm, giá cả, mô tả, v.v. Tập hợp thực thể này giúp bạn quản lý và truy cập các thực thể một cách hiệu quả. Nó cũng giúp bạn thực hiện các hoạt động như thêm, sửa, xóa thực thể một cách dễ dàng và thống nhất.
Mở trang câu hỏi này →
ATo define the visual layout of web pages.
BTo provide a standardized, REST-based protocol for creating and consuming queryable and interoperable APIs.
CTo replace the TCP/IP networking stack.
DTo serve as a client-side JavaScript framework for building single-page applications.
Lời giải
OData (Open Data Protocol) là một giao thức tiêu chuẩn hóa, dựa trên REST (Representational State of Resource), được thiết kế để tạo và tiêu thụ các API (Application Programming Interface) có thể được truy vấn và tương thích. Giao thức này cho phép các ứng dụng và dịch vụ chia sẻ dữ liệu một cách dễ dàng và thống nhất. OData cung cấp các tính năng như khả năng truy vấn dữ liệu, cập nhật dữ liệu, và quản lý các mối quan hệ giữa các đối tượng dữ liệu. Điều này giúp tạo ra các API có thể được sử dụng bởi các ứng dụng và dịch vụ khác nhau, bất kể nền tảng hoặc ngôn ngữ lập trình của chúng.
Mở trang câu hỏi này →
AMicrosoft.AspNetCore.OData
BMicrosoft.EntityFrameworkCore.SqlServer
CMicrosoft.AspNetCore.Mvc.Razor
DMicrosoft.AspNetCore.Authentication.JwtBearer
Lời giải
Để bật hỗ trợ OData trong ASP.NET Core Web API, bạn cần sử dụng gói NuGet Microsoft.AspNetCore.OData. Gói này cung cấp các tính năng cần thiết để tạo và quản lý các nguồn dữ liệu OData. OData là một tiêu chuẩn mở cho việc truy cập và quản lý dữ liệu trên web, cho phép bạn tạo các nguồn dữ liệu có thể được truy cập và sử dụng bởi các ứng dụng khác nhau. Khi sử dụng Microsoft.AspNetCore.OData, bạn có thể tạo các nguồn dữ liệu OData và sử dụng các tính năng như truy vấn dữ liệu, tạo và cập nhật dữ liệu, v.v. Ngoài ra, gói này cũng cung cấp các tính năng bảo mật và quản lý quyền truy cập dữ liệu.
Mở trang câu hỏi này →
A$select
B$orderby
C$expand
D$skip
Lời giải
Để chọn chỉ những thuộc tính cụ thể của một tài nguyên trong OData, bạn cần sử dụng tùy chọn '$select'. Tùy chọn này cho phép bạn chọn những thuộc tính mà bạn muốn lấy từ một tài nguyên, giúp giảm thiểu số lượng dữ liệu được truyền tải và cải thiện hiệu suất. Ví dụ, nếu bạn muốn lấy chỉ tên và địa chỉ của một khách hàng, bạn có thể sử dụng tùy chọn '$select' như sau: GET /Customers?$select=Name,Address Tùy chọn '$select' rất hữu ích khi bạn cần lấy một số thuộc tính cụ thể của một tài nguyên, giúp bạn có thể tập trung vào những thông tin quan trọng và giảm thiểu thời gian tải dữ liệu.
Mở trang câu hỏi này →
AGET /Products?$filter=endswith(Name, 'Edition')
BGET /Products?$filter=Name.endsWith('Edition')
CGET /Products?$filter=last(Name) eq 'Edition'
DGET /Products?$filter=Name like '%Edition'
Lời giải
Để tìm kiếm tất cả các sản phẩm có tên kết thúc bằng chuỗi 'Edition', chúng ta cần sử dụng hàm 'endswith' trong truy vấn OData. Hàm này giúp chúng ta kiểm tra xem chuỗi nào kết thúc bằng chuỗi khác. Trong trường hợp này, chúng ta muốn tìm kiếm các sản phẩm có tên kết thúc bằng 'Edition'.
Mở trang câu hỏi này →
A$select
B$orderby
C$filter
D$top
Lời giải
Để lọc một tập hợp các tài nguyên trong một yêu cầu OData, bạn cần sử dụng hệ thống câu lệnh truy vấn có tên là '$filter'. Câu lệnh '$filter' cho phép bạn áp dụng các điều kiện lọc để chọn ra các tài nguyên phù hợp với yêu cầu của bạn. Ví dụ, bạn có thể sử dụng '$filter' để lọc các tài nguyên dựa trên các thuộc tính của chúng, chẳng hạn như tên, địa chỉ, hoặc ngày sinh. Điều này giúp bạn có thể tập trung vào các tài nguyên quan trọng và giảm thiểu số lượng dữ liệu không cần thiết.
Mở trang câu hỏi này →

Đề có câu hỏi của chủ đề này

3 đề chứa ít nhất một câu thuộc chủ đề — mở đề để làm cả bộ, không chỉ từng câu.