APIを作成する方法.ネットコア
22420 ワード
達成する目標
我々は、これらの操作を実行するための一連のメソッドを公開する必要がある架空の企業を持っています
この場合、4つのフィールドを持つ製品と呼ばれるエンティティがあります.
何がAPIですか?
私はこの概念について多くの定義を読みました.
Apis is the specification of how one piece of software can interact with another.
この例では、外部アプリケーションと相互作用する特定のタスクを担当する一連の断片(「メソッド」)を作成します.
菅手術
汝、製品を創る
チェックア製品を読む
チェックアップ製品更新アップデート
△delete製品を削除する
JSONとは
ステップ1 : dotnetコマンドを実行する
コマンドラインウィンドウを開き、リポジトリフォルダに移動し、次のDOTNETコマンドを入力して新しいAPIプロジェクトを作成します.
dotnet new webapi -n crudstore
ステップ2:プロジェクトを探る
次のように入力します.
cd crudstore
次のように入力してプロジェクトを開きます.code .
ステップ3:環境設定
拡張パネルをクリックして、あなたの環境を準備し、より生産的に役立つツールの多くを探る.
個人的には、インストールすることを勧めます.
Step 4 :モデルの作成
namespace Models
{
public class Product
{
public int Idproduct { get; set; }
public string Name { get; set; }
public string Imageurl { get; set; }
public decimal Price { get; set; }
}
}
ステップ5 :コントローラの作成
私はこの例を説明するために製品の静的コレクションを使用しますが、実際のシナリオでは確かに、データベースに接続するコードを追加する必要があります.
static List _products = new List(){
new Product(){ Idproduct =0, Name= "hard disk", Price= 100 },
new Product(){ Idproduct =1, Name= "monitor", Price= 250 },
};
その後、次のコードをすべてのリクエストを処理します.ヘッダーの一部の名前空間をタッチしていることに注意してください.
using System.Collections.Generic;
using System.Linq;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Models;
[Produces("application/json")]
[ApiController]
[Route("api/products")]
public class productController : Controller
{
static List _products = new List(){
new Product(){ Idproduct =0, Name= "hard disk", Price= 100 },
new Product(){ Idproduct =1, Name= "monitor", Price= 250 },
};
[HttpGet("GetAll")]
public IActionResult GetAll()
{
return Ok(_products);
}
[HttpPost]
public IActionResult Post([FromBody] Product product)
{
_products.Add(product);
return StatusCode(StatusCodes.Status201Created);
}
[HttpPut]
public IActionResult Put([FromBody] Product product)
{
var entity = _products.Where(x => x.Idproduct == product.Idproduct).FirstOrDefault();
entity.Name = product.Name;
entity.Price = product.Price;
entity.Imageurl = product.Imageurl;
return StatusCode(StatusCodes.Status200OK);
}
[HttpDelete]
public IActionResult Delete([FromBody] Product product)
{
var entity = _products.Where(x => x.Idproduct == product.Idproduct).FirstOrDefault();
_products.Remove(entity);
return StatusCode(StatusCodes.Status200OK);
}
}
ステップ6 :プロジェクトにSwaggerを追加
SwaggerはあなたのAPIのすべてのメソッドを記述し、記述するのに非常に有用なナゲットです.
コマンドラインとプロジェクトの内部で次のコマンドを入力します.
dotnet add package Swashbuckle.AspNetCore
その結果、次のようなメッセージが表示されます.スタートアップに行け.プロジェクト内のCSクラスを適切に構成することができます.
「方法設定」サービスで、次のコードを追加します
services.AddCors(o => o.AddPolicy("MyPolicy", builder =>
{
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
}));
// Register the Swagger generator, defining 1 or more Swagger documents
services.AddSwaggerGen();
その後、起動クラスでconfigureメソッドに移動し、このコードを追加します.// Enable middleware to serve generated Swagger as a JSON endpoint.
app.UseSwagger();
// Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.),
// specifying the Swagger JSON endpoint.
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});
最後に、起動クラスは次のようになります.public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddCors(o => o.AddPolicy("MyPolicy", builder =>
{
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
}));
// Register the Swagger generator, defining 1 or more Swagger documents
services.AddSwaggerGen();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
// Enable middleware to serve generated Swagger as a JSON endpoint.
app.UseSwagger();
// Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.),
// specifying the Swagger JSON endpoint.
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
}
ステップ7 : APIのテスト
次のコマンドをコマンドラインウィンドウに入力します.
dotnet run
ステップ8 :結果を確認する
ブラウザを開き、URLを入力するhttps://localhost:5001/swagger/index.html , 以前に作成したメソッドのセットが表示されます.
メソッドゲー
URL :https://localhost:5001/api/products/GetAll
[
{
"idproduct": 0,
"name": "hard disk",
"imageurl": null,
"price": 100
},
{
"idproduct": 1,
"name": "monitor",
"imageurl": null,
"price": 250
}
]
メソッドポスト
URL :https://localhost:5001/api/products
{
"idproduct": 0,
"name": "watch",
"imageurl": "http://url",
"price": 150
}
あなたはスワイプは、APIをテストするために提供するすべての機能を探索することができますので、あなたのような他の興味深い選択肢がありますPostman and Fiddler APIをテストするには私はこのコードをお楽しみください!
Download this code for Github
それだ!あなたが疑いを持っているならば、あなたのコメントを残すか、私に尋ねるのを躊躇しないでください経由.
Reference
この問題について(APIを作成する方法.ネットコア), 我々は、より多くの情報をここで見つけました https://dev.to/ricardojvtorres/how-to-create-api-in-net-core-1cmiテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol