gRPC được xây dựng trên nền tảng của giao thức truyền tải nào? gRPC sử dụng giao thức HTTP/2 làm giao thức truyền tải cơ bản. Điều này cho phép gRPC tận dụng các tính năng của HTTP/2 như hỗ trợ nhiều luồng truyền tải, hỗ trợ các tính năng như server push, và hỗ trợ các tính năng khác. gRPC cũng có thể hoạt động trên các giao thức khác như TCP/IP trực tiếp, HTTP/1.1, UDP, nhưng giao thức HTTP/2 là giao thức được khuyến nghị và được sử dụng rộng rãi nhất.
PRN232 - Xây dựng ứng dụng back-end đa nền tảng với .NET
Chủ đề học tập
PRN232 Chương 1 - Nhập môn ASP.NET Core và RESTful Service
Chương 1 môn PRN232 mở đầu bằng nền tảng ASP.NET Core và kiến trúc RESTful: sáu ràng buộc REST, tính phi trạng thái (statelessness), giao thức HTTP cùng request line và các mã trạng thái như 200 OK, đặc điểm đa nền tảng và mã nguồn mở của ASP.NET Core, dependency injection dựng sẵn, cấu hình pipeline trong Program.cs, MapControllers và tài liệu API tương tác bằng Swagger (OpenAPI). Trọn bộ câu hỏi trắc nghiệm có đáp án và giải thích.
PRN232 Chương 10 - Kiến trúc Microservices
Chương 10 môn PRN232 khép lại chương trình bằng kiến trúc Microservices: cấu trúc ứng dụng thành tập hợp dịch vụ nhỏ, triển khai và mở rộng độc lập, tổ chức quanh năng lực nghiệp vụ, mỗi dịch vụ sở hữu cơ sở dữ liệu riêng, API Gateway làm điểm vào duy nhất và xử lý các mối quan tâm xuyên suốt với Ocelot, đóng gói bằng Docker, phân biệt giao tiếp đồng bộ qua HTTP hoặc gRPC với giao tiếp bất đồng bộ qua message queue, cùng nhược điểm runtime coupling của lối gọi đồng bộ thuần tuý. Trọn bộ câu hỏi trắc nghiệm có đáp án và giải thích.
PRN232 Chương 2 - Models trong Web API với Entity Framework Core
Chương 2 môn PRN232 đi vào tầng dữ liệu của Web API: định nghĩa model dạng POCO, DbContext và các thuộc tính DbSet quyết định lớp nào vào mô hình cơ sở dữ liệu, truy vấn LINQ được dịch sang SQL và thực thi trên máy chủ, Repository Pattern để tách logic truy cập dữ liệu, cùng Data Transfer Object và AutoMapper nhằm định hình dữ liệu cho client, chặn over-posting và không bao giờ trả thẳng entity chứa HashedPassword ra ngoài. Trọn bộ câu hỏi trắc nghiệm có đáp án và giải thích.
PRN232 Chương 3 - Media Formatters và Content Negotiation
Chương 3 môn PRN232 giải thích cách ASP.NET Core chuyển đổi dữ liệu qua lại giữa đối tượng .NET và định dạng truyền tải: vai trò của media type formatter, cặp lớp cơ sở InputFormatter và OutputFormatter thay cho MediaTypeFormatter đời cũ, viết formatter riêng kế thừa TextInputFormatter cho text/csv, thương lượng nội dung dựa trên header Accept với hệ số ưu tiên q, header Content-Type khi đọc request body, cùng khái niệm serialization và deserialization. Trọn bộ câu hỏi trắc nghiệm có đáp án và giải thích.
PRN232 Chương 4 - Model Binding, Validation và Routing
Chương 4 môn PRN232 tập trung vào chặng tiếp nhận request: Model Binder dựng đối tượng C# từ route data, query string và request body, quy tắc binding source parameter inference của [ApiController] cùng các attribute FromBody, FromQuery, FromRoute, FromHeader, attribute routing và tham số route, kiểm tra dữ liệu bằng Data Annotations như Required, StringLength, EmailAddress và RegularExpression, cơ chế tự trả 400 Bad Request khi ModelState.IsValid sai, và chọn đúng ActionResult như NotFound. Trọn bộ câu hỏi trắc nghiệm có đáp án và giải thích.
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ó đáp án và giải thích.
PRN232 Chương 6 - Bảo mật RESTful Web Service với JWT và Identity
Chương 6 môn PRN232 bàn về bảo mật dịch vụ REST: phân biệt xác thực (bạn là ai) với phân quyền (bạn được làm gì), ASP.NET Core Identity như hệ thống thành viên lo băm mật khẩu và quản lý vai trò, mở rộng IdentityUser bằng lớp kế thừa, JSON Web Token với ba phần Header - Payload - Signature, middleware UseAuthentication và UseAuthorization, header Authorization mang Bearer token, thuộc tính Authorize theo Roles, cùng lý do bắt buộc dùng HTTPS. Trọn bộ câu hỏi trắc nghiệm có đáp án và giải thích.
PRN232 Chương 7 - JavaScript Client và AJAX gọi Web API
Chương 7 môn PRN232 hướng dẫn phía client gọi Web API: cú pháp nền tảng $(selector).action() của jQuery và các bộ chọn phần tử, gửi request bất đồng bộ bằng $.ajax, $.get và $.post, ưu thế của phương thức .on() nhờ event delegation gắn được cả phần tử chưa tồn tại trong DOM, ý nghĩa chữ asynchronous giúp trình duyệt không bị treo, Same-Origin Policy chặn request khác domain, cùng cách nhận biết JSON hợp lệ và tài liệu XML well-formed. Trọn bộ câu hỏi trắc nghiệm có đáp án và giải thích.
PRN232 Chương 8 - Dịch vụ RESTful với WCF và CoreWCF
Chương 8 môn PRN232 giới thiệu Windows Communication Foundation và bản kế thừa CoreWCF: WCF hợp nhất các công nghệ giao tiếp cũ như ASMX, .NET Remoting và MSMQ về một mô hình lập trình, bộ ba ABC của endpoint gồm Address - Binding - Contract, attribute ServiceContract đánh dấu interface và OperationContract phơi bày phương thức thành service operation, đăng ký dịch vụ bằng AddServiceModelServices, cùng cách host CoreWCF ngay trong ứng dụng ASP.NET Core dưới dạng middleware. Trọn bộ câu hỏi trắc nghiệm có đáp án và giải thích.
PRN232 Chương 9 - gRPC Service và Protocol Buffers
Chương 9 môn PRN232 trình bày gRPC: hợp đồng chặt chẽ khai báo trong file .proto thay cho tài liệu rời rạc, Protocol Buffers với định dạng nhị phân nhỏ và nhanh hơn JSON cùng tập kiểu vô hướng độc lập ngôn ngữ, nền tảng truyền tải HTTP/2 và cơ chế Server Push, GrpcChannel như kết nối dùng lại được cho nhiều lời gọi, override phương thức RPC với ServerCallContext, streaming hai chiều đọc ghi độc lập, và các tình huống REST/JSON vẫn phù hợp hơn gRPC. Trọn bộ câu hỏi trắc nghiệm có đáp án và giải thích.
Đề thi trắc nghiệm
Xem tất cảPRN232
PRN232 - Xây dựng ứng dụng back-end đa nền tảng với .NET
Đề thi PRN232 SP26 FE - 50 câu có đáp án
PRN232
PRN232 - Xây dựng ứng dụng back-end đa nền tảng với .NET
Đề thi PRN232 SP26 B5FE - 49 câu có đáp án
PRN232
PRN232 - Xây dựng ứng dụng back-end đa nền tảng với .NET
Đề ôn tập PRN232 - 49 câu tổng hợp có đáp án
Bắt đầu một phiên học theo môn
Tiến độ của bạn sẽ luôn được tính toán và đồng bộ trực tiếp theo tổng số lượng câu hỏi mới nhất của môn học này.
Bạn cần đăng nhập để bắt đầu học từ ngân hàng câu hỏi và lưu tiến độ theo môn.
Đang tải phân bố độ khó.
Ngân hàng câu hỏi
Xem trước · Cuộn vô hạnĐể 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ột đối tượng JSON hợp lệ phải tuân thủ các quy tắc sau: - Các khóa phải được bao quanh bởi dấu ngoặc kép (" "). - Các giá trị phải được bao quanh bởi dấu ngoặc kép (" ") nếu là chuỗi, hoặc không cần dấu ngoặc kép nếu là số hoặc giá trị boolean. - Không được bỏ dấu phẩy sau mỗi cặp khóa-giá trị. - Không được bỏ dấu ngoặc kép ở cuối đối tượng. Vì vậy, trong bốn lựa chọn trên, chỉ có "{ "name": "John Doe", "age": 30 }" đáp ứng được các quy tắc này.
Để gắn một tham số vào một yêu cầu tiêu đề, bạn cần sử dụng thuộc tính nào?
Khi sử dụng [ApiController] trong ASP.NET Core, model binder sẽ cố gắng lấy dữ liệu cho tham số kiểu phức tạp (như một lớp hoặc bản ghi) từ đâu? Theo mặc định, model binder sẽ lấy dữ liệu từ cơ thể yêu cầu (request body). Điều này có nghĩa là dữ liệu sẽ được gửi qua trong nội dung của yêu cầu HTTP, thường là dưới dạng JSON hoặc XML. Điều này giúp cho việc truyền dữ liệu phức tạp trở nên dễ dàng hơn và giúp cho việc xử lý dữ liệu trở nên linh hoạt hơn. Tuy nhiên, người dùng cũng có thể sử dụng các thuộc tính khác nhau để chỉ định nguồn dữ liệu cho model binder, chẳng hạn như [FromBody], [FromQuery] hoặc [FromRoute].
Loại định dạng Media Type cho JSON được sử dụng rộng rãi và được khuyến nghị là 'application/json'. Loại này được sử dụng để xác định rằng dữ liệu được gửi hoặc nhận là trong định dạng JSON. Ví dụ, khi gửi yêu cầu HTTP, bạn có thể sử dụng 'Content-Type: application/json' để chỉ định rằng dữ liệu được gửi là trong định dạng JSON. Ngoài ra, khi nhận dữ liệu, bạn có thể sử dụng 'Accept: application/json' để chỉ định rằng bạn muốn nhận dữ liệu trong định dạng JSON. Loại định dạng này được hỗ trợ bởi hầu hết các trình duyệt và ứng dụng web, vì vậy nó là lựa chọn tốt nhất cho việc gửi và nhận dữ liệu JSON.
Khi xây dựng một ứng dụng web, việc bảo vệ thông tin người dùng là rất quan trọng. Trong trường hợp này, chúng ta có một thực thể User trong EF Core với các thuộc tính Id, Username, HashedPassword và IsAdmin. Nếu một client yêu cầu thông tin chi tiết về một người dùng, chúng ta cần quyết định thông tin nào nên được trả về.
EF Core biết được các lớp nào cần bao gồm trong mô hình cơ sở dữ liệu dựa trên các thuộc tính DbSet<T> được định nghĩa trong lớp DbContext. Khi bạn tạo một thuộc tính DbSet<T>, EF Core sẽ tự động phát hiện lớp tương ứng và bao gồm nó trong mô hình cơ sở dữ liệu. Điều này giúp bạn dễ dàng quản lý các lớp và mối quan hệ giữa chúng trong ứng dụng .NET 9 sử dụng EF Core.