VS Code+.Netでアプリを作る(No.4):WebAPIを作る
WebAPIプロジェクトを作る。
このサイトに沿って作成していく。
Step 1 Check dotnet core
.NetCoreのバージョン確認。2.0より上位である必要がある。
$ dotnet --version
3.1.300
重要なのはnewの後のテンプレート選択。今回は"webapi"で。
種類を確認したければ、$ dotnet new -hで参照できる。
$ dotnet new webapi -n TestWebAPI
The template "ASP.NET Core Web API" was created successfully.
Processing post-creation actions...
Running 'dotnet restore' on TestWebAPI/TestWebAPI.csproj...
復元対象のプロジェクトを決定しています...
/home/keisuke/dotnet/TestWebAPI/TestWebAPI.csproj を復元しました (141 ms)。
Restore succeeded.
Step 3 Open project with Visual Studio Code
既存のControllerは使わないそうだ。
Step 4 Create Models Folder
何か、ルートのファイルを選択(上図は、Startup.cs)し、new folderアイコンを選択し"Models"としてフォルダを作成する。
Step 5 Create Products class
Models(Entity)を作る。
ここは淡々と作ろう。
Step 6 Create Products Controller Class
Controllersフォルダ内にProductsController.csを作成する。
[Produces("application/json")]→このクラスで生成されるものはjsonフォーマットである。
[Route("api/products")]→URLはapi/productsである。
[HttpGet]→このメソッドはGETである。
[HttpGet("code/{codart}")]→このメソッドは、URL: api/products/code/{codart}でコールされる。
Step 7 Manual Testing with the use of Postman
F5 keyでデバッグ開始。
(コンソールから$ dotnet runでもよいがF5の方が見やすい。)
以下のURLでデバッグできる。最近のブラウザを考えると基本httpsがよいと思う。
http://localhost:5000
https://localhost:5001/api/products
参考サイト:
このサイトに沿って作成していく。
Step 1 Check dotnet core
.NetCoreのバージョン確認。2.0より上位である必要がある。
$ dotnet --version
3.1.300
Step 2 Creating a new web api project
プロジェクトを作成する。重要なのはnewの後のテンプレート選択。今回は"webapi"で。
種類を確認したければ、$ dotnet new -hで参照できる。
$ dotnet new webapi -n TestWebAPI
The template "ASP.NET Core Web API" was created successfully.
Processing post-creation actions...
Running 'dotnet restore' on TestWebAPI/TestWebAPI.csproj...
復元対象のプロジェクトを決定しています...
/home/keisuke/dotnet/TestWebAPI/TestWebAPI.csproj を復元しました (141 ms)。
Restore succeeded.
既存のControllerは使わないそうだ。
Step 4 Create Models Folder
何か、ルートのファイルを選択(上図は、Startup.cs)し、new folderアイコンを選択し"Models"としてフォルダを作成する。
Step 5 Create Products class
Models(Entity)を作る。
using System;
namespace Models
{
public class Products
{
public string Code {get; set;}
public string Description {get; set;}
public string Um {get; set;}
public string CodStat {get; set;}
public int PcCart {get; set;}
public double NetWeight {get; set;}
public string State {get; set;}
public DateTime CreationDate {get; set;}
public double Price {get; set;}
}
}
Step 6 Create Products Controller Class
Controllersフォルダ内にProductsController.csを作成する。
using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc;
using System.Linq;
using Models;
namespace Controllers
{
[Produces("application/json")]
[Route("api/products")]
public class ProductsController
{
Products[] products = new Products[]
{
new Products {Code = "014600301", Description = "BARILLA FARINA 1 KG", Um = "PZ", PcCart = 24, NetWeight = 1, Price = 1.09 },
new Products {Code = "013500121", Description = "BARILLA PASTA GR.500 N.70 1/2 PENNE", Um = "PZ", PcCart = 30, NetWeight = 0.5, Price = 1.3 },
new Products {Code = "007686402", Description = "FINDUS FIOR DI NASELLO 300 GR", Um = "PZ", PcCart = 8, NetWeight = 0.3, Price = 6.46 },
new Products {Code = "057549001", Description = "FINDUS CROCCOLE 400 GR", Um = "PZ", PcCart = 12, NetWeight = 0.4, Price = 5.97 }
};
[HttpGet]
public IEnumerable<Products> ListAllProducts()
{
return products;
}
[HttpGet("code/{codart}")]
public IEnumerable<Products> ListProductsByCode(string codart)
{
IEnumerable<Products> retVal =
from g in products
where g.Code.Equals(codart)
select g;
return retVal;
}
[HttpGet("description/{desart}")]
public IEnumerable<Products> ListProductsByDescription(string desart)
{
IEnumerable<Products> retVal =
from g in products
where g.Description.ToUpper().Contains(desart.ToUpper())
orderby g.Code
select g;
return retVal;
}
}
}
[Route("api/products")]→URLはapi/productsである。
[HttpGet]→このメソッドはGETである。
[HttpGet("code/{codart}")]→このメソッドは、URL: api/products/code/{codart}でコールされる。
Step 7 Manual Testing with the use of Postman
F5 keyでデバッグ開始。
(コンソールから$ dotnet runでもよいがF5の方が見やすい。)
以下のURLでデバッグできる。最近のブラウザを考えると基本httpsがよいと思う。
http://localhost:5000
https://localhost:5001/api/products
参考サイト:
コメント
コメントを投稿