APIを作成する方法.ネットコア


達成する目標


我々は、これらの操作を実行するための一連のメソッドを公開する必要がある架空の企業を持っています
  • 製品を作る
  • 製品を読む
  • アップデート製品
  • 製品の削除
  • これらのAPIメソッドを消費しようとする外部アプリケーションには、次のような画面があります.

    この場合、4つのフィールドを持つ製品と呼ばれるエンティティがあります.
  • 生成物( int )
  • name ( string )
  • imagurl ( string )
  • 代金( 10進)
  • コーディングを始める前に、APIとJSON形式についての基本的な概念をリフレッシュすることをお勧めします.

    何がAPIですか?


    私はこの概念について多くの定義を読みました.

    Apis is the specification of how one piece of software can interact with another.


    この例では、外部アプリケーションと相互作用する特定のタスクを担当する一連の断片(「メソッド」)を作成します.
    菅手術
    汝、製品を創る
    チェックア製品を読む
    チェックアップ製品更新アップデート
    △delete製品を削除する

    JSONとは

  • jsonはJavaScriptのオブジェクト表記の略です
  • JSONは、データを格納して、輸送するための軽量フォーマットです
  • JSONは、サーバーからWebページへのデータ送信時にしばしば使用されます
  • JSONは「自己記述」と理解しやすい
  • では、コーディングを開始しましょう.

    ステップ1 : dotnetコマンドを実行する


    コマンドラインウィンドウを開き、リポジトリフォルダに移動し、次のDOTNETコマンドを入力して新しいAPIプロジェクトを作成します.
    dotnet new webapi -n crudstore
    

    ステップ2:プロジェクトを探る


    次のように入力します.
    cd crudstore
    
    次のように入力してプロジェクトを開きます.
    code .
    

    ステップ3:環境設定


    拡張パネルをクリックして、あなたの環境を準備し、より生産的に役立つツールの多くを探る.
    個人的には、インストールすることを勧めます.
  • C
  • エクステンション

  • 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
    それだ!あなたが疑いを持っているならば、あなたのコメントを残すか、私に尋ねるのを躊躇しないでください​​経由.