iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 14
0
Microsoft Azure

Azure 的自我修煉系列 第 14

Day14 實作 ASP.NET Core 建立 Web API

實作 ASP.NET Core 建立 Web API 教學

參考 教學課程:使用 ASP.NET Core 建立 web API

在本教學課程中,您會了解如何:

  1. 建立 Web API 專案。
  2. 新增模型類別和資料庫內容。
  3. 使用 CRUD 方法 Scaffold 控制器。
  4. 設定路由、URL 路徑和傳回值。
  5. 使用 Postman 呼叫 Web API。

建立 Web API 專案

使用 dotnet new 創建 webapi 專案
專案名稱: PellokITHomeApi

dotnet new webapi -o PellokITHomeApi

https://ithelp.ithome.com.tw/upload/images/20200914/20072651aQtkWJCdiu.png

增加 SqlServer 模組

cd PellokITHomeApi
dotnet add package Microsoft.EntityFrameworkCore.SqlServer

https://ithelp.ithome.com.tw/upload/images/20200914/200726512DZceVrDJl.png

增加 InMemory 模組

dotnet add package Microsoft.EntityFrameworkCore.InMemory

https://ithelp.ithome.com.tw/upload/images/20200914/20072651KIYBFQlGeR.png

開啟 vscode

code -r ../PellokITHomeApi

https://ithelp.ithome.com.tw/upload/images/20200914/200726519zBy8939yu.png

創建 webapi 時,會有一隻預設API,
可以先啟動服務看看是否正常使用
啟動服務,使用瀏覽器開啟以下測試頁面
https://localhost:5001/WeatherForecast
https://ithelp.ithome.com.tw/upload/images/20200914/20072651BUd2XolpGE.png

新增模型類別和資料庫內容

新增模型類別

mkdir Models
touch Models/Article.cs
public class Article
{
    public long Id { get; set; }
    public string Name { get; set; }
    public bool IsComplete { get; set; }
}

新增資料庫內容

touch Models/ArticleContext.cs
using Microsoft.EntityFrameworkCore;

namespace PellokITHomeApi.Models
{
    public class ArticleContext : DbContext
    {
        public ArticleContext(DbContextOptions<ArticleContext> options)
            : base(options)
        {
        }

        public DbSet<Article> Articles { get; set; }
    }
}

登錄資料庫內容
修改 Startup.cs

using Microsoft.EntityFrameworkCore;
using PellokITHomeApi.Models;

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<ArticleContext>(opt =>
       opt.UseInMemoryDatabase("ArticleList"));
    services.AddControllers();
}

使用 CRUD 方法 Scaffold 控制器

安裝 CodeGeneration 模組

dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design

https://ithelp.ithome.com.tw/upload/images/20200914/200726514IGQQB2wL7.png

安裝 EntityFrameworkCore 模組

dotnet add package Microsoft.EntityFrameworkCore.Design

https://ithelp.ithome.com.tw/upload/images/20200914/20072651zZO3ZHk8zE.png

使用 aspnet-codegenerator 產生 controller 程式
名稱: ArticlesController
表名稱: Article
Context名稱: ArticleContent

dotnet aspnet-codegenerator controller -name ArticlesController -async -api -m Article -dc ArticleContext -outDir Controllers

https://ithelp.ithome.com.tw/upload/images/20200914/200726516l3403KfUJ.png

產生的程式碼:
標記具有屬性的類別 [ApiController] 。 這個屬性表示控制器會回應 Web API 要求。 如需屬性所啟用之特定行為的相關資訊,請參閱 使用 ASP.NET Core 建立 Web API。
使用 DI 將資料庫內容 (TodoContext) 插入到控制器中。 控制器中的每一個 CRUD 方法都會使用資料庫內容。

使用 Postman 呼叫 Web API

安裝 Postman
https://ithelp.ithome.com.tw/upload/images/20200914/200726514qoH6g2wyJ.png

創建 Collection
https://ithelp.ithome.com.tw/upload/images/20200914/2007265129lJHuumbd.png
https://ithelp.ithome.com.tw/upload/images/20200914/20072651lBXDlaGyA9.png

創建 Request
將 HTTP 方法設為 POST。
將 URI 設定為 https://localhost:/api/Atricles 。
例如 https://localhost:5001/api/Articles
選取 [Body]**** (本文) 索引標籤。
選取 [原始]**** 選項按鈕。
將類型設定為 JSON (application/json)。
在要求本文中,針對待辦項目輸入 JSON:

https://ithelp.ithome.com.tw/upload/images/20200914/200726512XRKcVvgUJ.png

https://ithelp.ithome.com.tw/upload/images/20200914/20072651mMAqokz6HU.png

相關連結:

上一篇 Day13 部署 Webapp 使用 SQL服務
下一篇 Day15 網頁基礎知識


上一篇
Day13 部署 Webapp 使用 SQL服務
下一篇
Day15 網頁基礎知識
系列文
Azure 的自我修煉30

尚未有邦友留言

立即登入留言