- vừa được xem lúc

05. Gọi REST API ngay trong Visual Studio? Bạn đã thử chưa???

0 0 8

Người đăng: Hoàng Cao Phi

Theo Viblo Asia

Hầu hết chúng ta đều gọi REST API bằng những công cụ như PostMan hoặc Insomnia... Nhưng nếu chúng ta muốn lưu trữ những kịch bản kiểm tra API đó cùng với Souce Code để lưu lại hoặc chia sẻ cho những thành viên trong dự án, ta sử dụng cách là import và export để lưu trữ lên Souce Control rồi chia sẻ với những thành viên khác và mỗi lần thêm mới một API thì lại cần báo thành viên trong dự án get code mới rồi import lại, việc này cũng tiêu tốn khá nhiều thời gian.

Vậy có giải pháp nào có thể xử lý những vấn đề trên trong khi làm việc nội bộ với các thành viên trong một dự án? Để cùng với những công cụ PostMan hay Insomnia giúp tối ưu hiệu suất làm việc của dự án, hay làm việc một cách có tổ chức. Bài viết này sẽ nêu một giải pháp có sẵn trong Visual Studio 2022 (VS2022) để mọi người tham khảo.

Cài đặt

Trong VS 2022 cung cấp sẵn một dạng file .http giúp việc kiểm tra các API trong ứng dụng .NET một cách thuận tiện, điều kiện tiên quyết sử dụng dạng file này là phiên bản VS 2022 - 17.8 trở lên.

Cách tạo .http file

Bước 1: Tạo thư mục Http files trong project API, thư mục này sẽ chứa toàn bộ file .http trong dự án.

Bước 2: Chuột phải vào thư mục, chọn Add -> New Item. image.png

Bước 3: Tạo một file .http, đặt tên theo từng tên Controller cần kiểm tra: image.png

Bước 4: Add. Vậy là ta đã tạo được một file .http đầu tiên.

Những thành phần cơ bản trong .http file.

Request

Thành phần đầu tiên sẽ là Http Request, thành phần này sẽ được viết theo cấu trúc như sau: HTTPMethod URL HTTPVersion, những thành phần này được viết cùng một dòng, chi tiết như sau:

HTTPMethod: là những Http Method thường sử dụng như:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
  • OPTIONS
  • HEAD
  • TRACE
  • CONNECT

URL: chính là URL để gửi request đến server. Có thể bao gồm những route param hay query string parameters.

HTTPVersion: phiên bản Http sử dụng, có thể là HTTP/1.1, HTTP/2 hoặc HTTP/3, về sự khác nhau của 3 phiên bản này, các bạn có thể tham khảo bài viết rất hay tại đây.

Một file http có thể chứa nhiều requests, những requests được phân cách nhau bởi dấu ###, hình sau sẽ mô tả những cách khai báo request cơ bản và cách phân cách chúng:

image.png

Request header

Để khai báo header cho từng request, ta sẽ khai báo chúng ngay dưới Http Request, cú pháp khai báo của header sẽ là HeaderName: Value, mỗi header sẽ được khai báo trên một dòng riêng biệt: image.png Như ví dụ trên đã khai báo hai header là Content-Type và Authorization. Chúng được khai báo ngay dưới Http Request và phân biệt nhau bởi mỗi dòng.

Request body

Ta sẽ thêm request body sau một dòng trống sau phần Request header như sau: image.png

Comment

Comment được thêm khai bắt đầu bằng dấu # hoặc //.

Variables

Biến trong file .http được khai báo theo cú pháp: @VariableName=Value. Sau khi khai báo, chúng ta có thể sử dụng biến với cú pháp {{VariableName}}: image.png

File biến môi trường

Để cung cấp các biến khác nhau cho môi trường khác nhau. Ví dụ ở môi trường local ta sẽ sử dụng biến khác với môi trường test hay production, file biến môi trường sẽ giải quyết vấn đề này. Để tạo file biến môi trường, ta sẽ tạo một file như sau: http-client.env.json. File này sẽ đặt trong thư mục Http Files. image.png

Nội dung trong file http-client.env.json sẽ theo cú pháp như sau: image.png

Một file env này sẽ chứa một hoặc nhiều môi trường, được khai báo như là dev hoặc test ở ví dụ trên. Trong mỗi môi trường chúng ta sẽ có những biến khác nhau, có thể khai báo các giá trị khác nhau như HostAddress trong ví dụ trên.

Sau khi tạo biến môi trường, nếu bạn đang bật file http, bạn có thể đóng file rồi mở lại để file đó nhận các giá trị của biến môi trường.

Để chọn môi trường chúng ta có thể nhấp F6 hoặc chọn môi trường ở góc phải màn hình của file http: image.png

Sau khi khai báo biến môi trường, để sử dụng biến, ta sử dụng cách gọi như những biến thông thường, với cú pháp {{VariableName}}.

image.png

Tạo nhanh file .http và các request

Bước 1: Mở Endpoints Explorer, chọn View > Other Windows > Endpoints Explorer. image.png Bước 2: Sau khi sửa sổ Endpoints Explorer xuất hiện, nó sẽ hiển thị những API trong project API của bạn, chuột phải vào API cần generate, chọn generate request, VS2022 sẽ tự động tạo cho bạn một request tương ứng trong một file http. image.png image.png Bước 3: Copy request vừa generate ra vào thư mục chứa file bạn tạo quản lý riêng theo từng Controller.

Thực hành

Bước 1: Tải souce code mẫu tại đây, hoặc bạn có thể thực hành ngay trên souce code của chính bạn.

Bước 2: Tạo thư mục Http Files để quản lý các file http trong project.

Bước 3: Trong project có một Controller là SampleController, nên chúng ta sẽ tạo ra một file sample.http để quản lý các request trong Controller đó.

Bước 4: Tạo file biến môi trường http-client.env.json, đặt trong thư mục Http Files, nội dung như sau:

{ "dev": { "HostAddress": "https://localhost:7229/api" }, "test": { "HostAddress": "https://testapp.com" }
}

Bước 5: Trong phần thực hành này, chúng ta sẽ chỉ thực hành một API đơn giản đó là API lưu, trong file sample.http, viết một test API như sau:

@controllerName=sample POST {{HostAddress}}/{{controllerName}}
Content-Type: application/json { "GroupName": "Gia đình", "Description": "Bao gồm từ vựng chủ đề gia đình", "GroupTypeEnum": 1
} ###

Trong đó controllerName là biến được khai báo riêng ở trong file sample, và HostAddress là biến môi trường khai báo trong file http-client.env.json.

Bước 6: Chạy project, sau khi chạy project thành công. Chọn Send request ở trên mỗi API cần test: image.png

Sau khi Send request, sẽ có màn hình kết quả của request lỗi hay thành công... image.png

Để xem toàn bộ thông tin Request được gửi đi, bạn có thể xem ở Tab Request: image.png

Vậy là chúng ta đã tìm hiểu và viết một test request cơ bản với .http file được hỗ trợ bởi VS2022.

Tài liệu tham khảo

https://learn.microsoft.com/en-us/aspnet/core/test/http-files?view=aspnetcore-8.0#prerequisites

Liên hệ

Nếu thấy hay các bạn có thể ủng hộ bằng cách đăng ký kênh của mình tại đây nhé.

Cảm ơn mọi người đã đọc bài viết.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Các loại tham chiếu Nullable trong C# (Phần 1)

1. Giới thiệu. C# 8.0 giới thiệu kiểu tham chiếu nullable và kiểu tham chiếu non-nullable cho phép bạn đưa ra các lựa chọn quan trọng về thuộc tính cho các biến kiểu tham chiếu:.

0 0 52

- vừa được xem lúc

Command pattern qua ví dụ !

Command pattern là gì . Command pattern khá phổ biến trong C #, đặc biệt khi chúng ta muốn trì hoãn hoặc xếp hàng đợi việc thực hiện một yêu cầu hoặc khi chúng ta muốn theo dõi các hoạt động. Hơn nữa, chúng ta có thể hoàn tác tác chúng. .

0 0 192

- vừa được xem lúc

Hiểu Liskov Substitution Principle qua ví dụ !

Liskov Substitution Principle là gì . Nguyên tắc đóng mở xác đinh rằng các instance của lớp con có thể thay thế được instance lớp cha mà vẫn đảm bảo tính đúng đắn của chương trình.

0 0 36

- vừa được xem lúc

Creating custom Controls Wpf

Introduction. Wpf/winforms provides various controls like Buttons, Textbox, TextBlock, Labels etc.

0 0 55

- vừa được xem lúc

[P1] Chọn công nghệ nào để xây dựng website?

Hiện nay nhu cầu phát triển website, app tăng rất cao do xu hướng "số hóa 4.0" trong và ngoài nước.

0 0 85

- vừa được xem lúc

Kiểu dữ liệu trong C#

Dẫn nhập. Ở bài BIẾN TRONG C# chúng ta đã tìm hiểu về biến và có một thành phần không thể thiếu khi khai báo biến – Đó là kiểu dữ liệu.

0 0 36