Bài tập - Tạo dự án API web

Đã hoàn thành

Mô-đun này sử dụng .NET 8.0 SDK. Đảm bảo rằng bạn đã cài đặt .NET 8.0 bằng cách chạy lệnh sau đây trong thiết bị đầu cuối lệnh yêu thích của bạn:

dotnet --list-sdks

Đầu ra tương tự như ví dụ sau đây xuất hiện:

6.0.317 [C:\Program Files\dotnet\sdk]
7.0.401 [C:\Program Files\dotnet\sdk]
8.0.100 [C:\Program Files\dotnet\sdk]

Hãy đảm bảo rằng phiên bản bắt đầu bằng 8 được liệt kê. Nếu không có mục nào được liệt kê hoặc không tìm thấy lệnh, đặt phiên bản .NET 8.0 SDK mới nhất.

Tạo và khám phá dự án API web

Để thiết lập dự án .NET để hoạt động với API web, chúng tôi sử dụng Visual Studio Code. Visual Studio Code bao gồm một thiết bị đầu cuối tích hợp giúp tạo ra một dự án mới dễ dàng. Nếu bạn không muốn sử dụng trình soạn thảo mã, bạn có thể chạy các lệnh trong mô-đun này trong một thiết bị đầu cuối.

  1. Trong Mã Visual Studio, hãy chọn Tệp>Mở Thư mục.

  2. Tạo một thư mục mới có tên contosoPizza vào vị trí bạn chọn, rồi chọn Chọn Thư mục.

  3. Mở thiết bị đầu cuối tích hợp từ Visual Studio Code bằng cách chọn View>terminal từ menu chính.

  4. Trong cửa sổ thiết bị đầu cuối, hãy sao chép và dán lệnh sau đây:

    dotnet new webapi -controllers -f net8.0
    

    Lệnh này tạo các tệp cho dự án API web cơ bản sử dụng bộ điều khiển, cùng với tệp dự án C# có tên ContosoPizza.csproj trả về danh sách dự báo thời tiết. Nếu bạn gặp lỗi, hãy đảm bảo rằng bạn đã cài SDK .NET 8 đặt.

    Quan trọng

    Các dự án API web được bảo mật bằng https theo mặc định. Nếu bạn gặp sự cố, hãy cấu hình chứng chỉ phát triển Core HTTPS ASP.NET của.

    Bạn có thể nhận được lời nhắc từ Mã Visual Studio để thêm tài nguyên để gỡ lỗi dự án. Chọn trong hộp thoại.

    Lệnh này sử dụng một ASP.NET mẫu dự án Core được biệt danh webapi để giàn giáo một dự án API web dựa trên C#. Thư ContosoPizza được tạo. Thư mục này chứa một ASP.NET án Core đang chạy trên .NET. Tên dự án khớp với tên ContosoPizza mục.

    Bây giờ bạn sẽ có quyền truy cập vào các tệp và thư mục này:

    -| Controllers
    -| obj
    -| Properties
    -| appsettings.Development.json
    -| appsettings.json
    -| ContosoPizza.csproj
    -| ContosoPizza.http
    -| Program.cs
    -| WeatherForecast.cs
    
  5. Kiểm tra các tệp và thư mục sau đây:

    Tên Sự miêu tả
    Controllers/ Chứa các lớp với phương pháp công cộng được hiển thị dưới dạng điểm cuối HTTP.
    Program.cs Cấu hình dịch vụ và đường ống dẫn yêu cầu HTTP của ứng dụng và chứa điểm nhập được quản lý của ứng dụng.
    ContosoPizza.csproj Chứa siêu dữ liệu cấu hình cho dự án.
    ContosoPizza.http Chứa cấu hình để kiểm tra API REST trực tiếp từ Visual Studio Code.

Xây dựng và kiểm tra API web

  1. Chạy lệnh .NET Core CLI sau đây trong bộ thông báo lệnh:

    dotnet run
    

    Lệnh trước:

    • Định vị tệp dự án tại thư mục hiện tại.
    • Truy xuất và cài đặt bất kỳ quan hệ phụ thuộc dự án bắt buộc nào cho dự án này.
    • Biên dịch mã dự án.
    • Lưu trữ API web với máy chủ web ASP.NET Core Kestrel tại cả điểm cuối HTTP và HTTPS.

    Một cổng từ 5000 đến 5300 được chọn cho HTTP và từ 7000 đến 7300 cho HTTPS, khi dự án được tạo. Bạn có thể dễ dàng thay đổi các cổng mà bạn sử dụng trong quá trình phát triển bằng cách chỉnh sửa tệp launchSettings.json của dự án. Mô-đun này sử dụng URL localhost bảo mật bắt đầu bằng https.

    Bạn sẽ nhận được đầu ra tương tự như sau, cho biết rằng ứng dụng của bạn đang chạy:

    Building...
    info: Microsoft.Hosting.Lifetime[14]
          Now listening on: https://localhost:7294
    info: Microsoft.Hosting.Lifetime[14]
          Now listening on: http://localhost:5118 
    info: Microsoft.Hosting.Lifetime[0]
          Application started. Press Ctrl+C to shut down.
    info: Microsoft.Hosting.Lifetime[0]
          Hosting environment: Development        
    

    Nếu bạn đang chạy ứng dụng này trên máy của riêng mình, bạn có thể hướng trình duyệt đến liên kết HTTPS được hiển thị trong đầu ra (trong trường hợp trước đó là https://localhost:7294) để xem trang kết quả. Hãy nhớ cổng này, bởi vì bạn sử dụng nó trong suốt mô-đun nơi {PORT} được sử dụng.

    Quan trọng

    Kiểm tra đầu ra thiết bị đầu cuối nếu bạn gặp bất kỳ hành vi bất ngờ. Nếu bản dựng không thành công hoặc xảy ra lỗi khác, thông tin của tệp nhật ký sẽ giúp bạn khắc phục sự cố. Khi thực hiện thay đổi đối với mã, bạn sẽ cần dừng API web bằng cách chọn CTRL+C trên bàn phím và chạy lại lệnh dotnet run.

  2. Mở trình duyệt web và truy cập:

    https://localhost:{PORT}/weatherforecast
    

    Bạn sẽ thấy đầu ra JSON tương tự như ví dụ này:

    [
        {
        "date": "2021-11-09T20:36:01.4678814+00:00",
        "temperatureC": 33,
        "temperatureF": 91,
        "summary": "Scorching"
        },
        {
        "date": "2021-11-09T20:36:01.4682337+00:00",
        "temperatureC": -8,
        "temperatureF": 18,
        "summary": "Cool"
        },
        // ...
    ]
    

Tùy chọn: Khám phá với các .http khác

Bao gồm trong dự án là contosoPizza.http, một tệp được sử dụng để kiểm tra các điểm cuối API thông qua một định dạng chuẩn. .http được hỗ trợ trong một số Môi trường phát triển tích hợp (ID) bao gồm Visual Studio và bên trong Mã Visual Studio với phần mở rộng REST Client được cài đặt.

  1. Mở tệp ContosoPizza.http.

    Trong một số ID, tệp này được cấu hình sẵn với các biến @ContosoPizza_HostAddress và lệnh GET gọi /weatherforecast/ chấp nhận ứng dụng /json.

  2. Nếu tệp có trong tệp của bạn, hãy chọn lệnh Sent Request phía trên GET gửi yêu cầu đến dịch vụ đang chạy.

    Gọi lệnh này sẽ mở ra một cửa sổ phản hồi với đầu ra tương tự như những gì chúng ta thấy trong trình duyệt:

    HTTP/1.1 200 OK
    Connection: close
    Content-Type: application/json; charset=utf-8
    Date: Wed, 17 Jan 2024 16:46:40 GMT
    Server: Kestrel
    Transfer-Encoding: chunked
    
    [
        {
            "date": "2024-01-18",
            "temperatureC": -2,
            "temperatureF": 29,
            "summary": "Warm"
        },
        {
            "date": "2024-01-19",
            "temperatureC": 24,
            "temperatureF": 75,
            "summary": "Chilly"
        },
        // ..
    ]
    

Tùy chọn: Khám phá API với Dòng Lệnh HTTP REPL

  1. Mở một thiết bị đầu cuối tích hợp mới từ Visual Studio Code bằng cách chọn Terminal>Terminal mới từ menu chính, sau đó chạy lệnh sau:

    dotnet tool install -g Microsoft.dotnet-httprepl
    

    Lệnh trước đó cài đặt công cụ dòng lệnh Vòng lặp lệnh .NET HTTPEval-Print Loop (REPL) mà bạn sử dụng để tạo yêu cầu HTTP cho API web.

  2. Kết nối với API web bằng cách chạy lệnh sau:

    httprepl https://localhost:{PORT}
    

    Ngoài ra, hãy chạy lệnh sau đây bất cứ lúc nào HttpRepl đang chạy:

    connect https://localhost:{PORT}
    

    Mẹo

    Nếu công cụ HttpRepl cảnh báo Không thể tìm thấy mô tả OpenAPI, nguyên nhân có khả năng nhất là chứng chỉ phát triển không đáng tin cậy. HttpRepl yêu cầu kết nối tin cậy. Trước khi có thể tiếp tục, bạn phải đặt cấuhệ thống của mình để tin cậy chứng chỉ dev với dotnet dev-certs https --trust

  3. Khám phá các điểm cuối sẵn có bằng cách chạy lệnh sau:

    ls
    

    Lệnh trước phát hiện tất cả API sẵn dùng trên điểm cuối được kết nối và liệt kê chúng, như trong đầu ra sau đây:

    https://localhost:{PORT}/> ls
    .                 []
    WeatherForecast   [GET] 
    
  4. Đi đến điểm WeatherForecast cuối bằng cách chạy lệnh sau đây:

    cd WeatherForecast
    

    Lệnh trước hiển thị đầu ra các API sẵn dùng cho điểm WeatherForecast trước:

    https://localhost:{PORT}/> cd WeatherForecast
    /WeatherForecast    [GET]
    
  5. Thực hiện một GET yêu cầu HttpRepl bằng cách sử dụng lệnh sau đây:

    get
    

    Lệnh trước tạo yêu cầu GET tương tự như đi tới điểm cuối trong trình duyệt:

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    Date: Fri, 02 Apr 2021 17:31:43 GMT
    Server: Kestrel
    Transfer-Encoding: chunked
    [
        {
        "date": 4/3/2021 10:31:44 AM,
        "temperatureC": 13,
        "temperatureF": 55,
        "summary": "Sweltering"
        },
        {
        "date": 4/4/2021 10:31:44 AM,
        "temperatureC": -13,
        "temperatureF": 9,
        "summary": "Warm"
        },
        // ..
    ]
    
  6. Kết thúc phiên kết HttpRepl hiện tại bằng cách sử dụng lệnh sau đây:

    exit
    
  7. Quay lại thiết bị dotnet cuối trong danh sách thả xuống trong Visual Studio Code. Tắt API web bằng cách chọn CTRL+C trên bàn phím của bạn.

Bây giờ bạn đã tạo web API, chúng tôi có thể sửa đổi nó để đáp ứng nhu cầu của API web pizza.