ASPでRESTful APIを構築するネットMVC 5


ASP .MVCのアーキテクチャは、要求が我々のアプリケーションに来ると、MVCフレームワークは、コントローラ内のアクションにこの要求をドロップします.このアクションは、Razorビューエンジンによって解析されるほとんどの時間ビューを返します.最終的に、HTMLマークアップはクライアントに返されます.したがって、HTMLタグ付けはサーバー上で生成され、このアプローチでクライアントに送信されます.
HTMLタグを生成する別の方法があります.HTMLタグを返す代わりに、生のデータを返すことができます.

このアプローチの利点は何ですか?

  • それはより少ないサーバー資源を必要とします(それは潜在的にアプリケーションのスケーラビリティを強化します、なぜならば、各々のクライアントがその見解を生成する責任があるので).
  • 生データは頻繁にHTMLマークアップよりも少ない帯域幅を必要とします.これは、データを潜在的に顧客により迅速に到着することができます.そして、これはアプリケーションの知覚効率を向上させる可能性があります.
  • このアプローチは、モバイルアプリケーションやタブレットのような幅広い顧客をサポートしています.
  • これらのアプリケーションは単にデータを取得し、ローカルビューを生成するエンドポイントと呼ばれます.これらの端末をデータサービスとして参照します.
    Web APIは、クロス周辺機器に限られていない、彼らはまた、広く新しい機能を追加する当社のWebアプリケーションで使用されます.YouTube、Facebook、Twitterなどの多くの人気サイトは、我々のWebアプリで消費できるパブリックデータサービスを表示します.我々は、我々のアプリにデータをマージすることができますし、新しいユーザーのための新しい経験を提供します.それらは良いことです.

    条約


    それで、あなたはHTTPサービスとウェブAPIが何であるかについてわかっています.ここでは、いくつかの様々なタイプのリクエストをサポートするアプリケーションを開発します.
    取得/API/学生(学生のリストを取得する)
    取得/API/学生/1
    ポスト/API/学生(学生を加えて、学生データを加えるために)
    GETとPOSTデータ要求を混同しないでください、我々はGET Requestを使用して、リソースまたはデータのリストを得ます.
    そして、新しいリクエストを作成するためにPOSTリクエストを使用します.
    今、学生を更新するには、プットアプリケーションを使用します.
    プット/API/顧客/1
    このようにクライアントIDがURLにあり、更新されるデータやプロパティはリクエストの本文になります.そして最後に、学生を削除します.
    削除/API/顧客/1
    HttpDeleteリクエストをエンドポイントに送信します.したがって、リクエストタイプとパラメタに関して、あなたがここで見るものは、REST(代表的な状態移動)を要求するために言及される標準的な慣例です
    続きを読むOverloading Action Method In Asp.net Mvc
    ステップ1
    まず、ASPを作成します.Visual StudioでNET Webアプリケーションプロジェクトを呼び出し、それをRESTAPIと呼びます.これを行うには、file -> new -> project -> aspを選択します.NET Webアプリケーションと「了解」をクリックします.
    OKボタンをクリックすると、次のウィンドウがWeb APIを選択する場所から表示され、[ OK ]ボタンをクリックします.
    ステップ2
    GET、POST、PUT、DELETEサービスを管理するために、以下のリソースクラスを構築します.「プロジェクトエクスプローラー」ウィンドウで「テンプレート」フォルダを右クリックし、[追加]をクリックします.
    今ではAPIにアクションを書くことが容易になります.
    public IEnumerable<student> GetStudents()  
    {      
    }  
    </student>
    
    
    項目のリストを返すので、慣習あたりのこのアクションは返信されます.
    //取得/API/学生
    それで、それはASPに埋め込まれた慣例です.ネットさて、この動作では、データベースから顧客を取得するためのコンテキストを使用します.
    namespace RestAPI.Controllers.API  
    {  
        public class StudentsController: ApiController  
        {  
            private readonly ApplicationDbContext _context;  
    
            public StudentsController ()  
            {  
                _context = new ApplicationDbContext ();  
            } 
            // GET /API/students  
            public IEnumerable<student> GetStudents()  
            {  
                Return _context.Students.ToList();  
            }  
        }  
    }  
    </student>
    
    
    リソースが見つからなかった場合は、not - found HTTP応答を返します.
    // POST /api/students  
    [HttpPost]  
           public Customer CreateStudent(Student student)  
           {  
           } 
    
    
    これはリクエストの本文にあるクライアント引数であり、自動的にASPで初期化されます.NET Web APIフレームワーク.ここで、リソースを作成する際にHttpPostとの動作をマークする必要があります.そして、我々が命名規則に従うならば、我々は行動に動詞行動を置く必要さえありません.
    // POST /API/students  
    public Student PostStudent(Student  student )  
    {  
    } 
    
    
    しかし最初は、これは良いアプローチではない.あなたが将来コードをリファクタリングして、おそらくあなたのアクションを変更すると仮定して、あなたのコードが壊れるでしょう.したがって、常にアクションの上部にあるHTTP動詞を使用する必要があります.
    すぐに、APIアクションのポスト要求でデータベースに学生オブジェクトを挿入しましょう.
    // POST /api/students  
    [HttpPost]  
    public Student CreateStudent(Student student)  
    {  
        if (!ModelState.IsValid)  
        {  
            throw new HttpResponseException(HttpStatusCode.BadRequest);  
        }  
        _context.Students.Add(student);  
        _context.SaveChanges();  
        return student;  
    }  
    
    
    もう一つの手段:我々は学生を更新したいと仮定します.
    // PUT /api/students/1  
    [HttpPut]  
    public void UpdateStudent(int id, Student student)  
    {  
        if (!ModelState.IsValid)  
        {  
            throw new HttpResponseException(HttpStatusCode.BadRequest);  
        }  
        var studentmgr = _context.Studentd.SingleOrDefault(x => x.Id == id);  
        if (studentmgr == null)  
        {  
            throw new HttpResponseException(HttpStatusCode.NotFound);  
        }
        studentmgr.Name = student.Name;  
        studentmgr.Std = student.Std;  
        _context.SaveChanges();  
    }  
    
    
    信頼を探す.Net Development Company ? あなたの検索はここで終わります.
    ここでは、このシナリオでは、異なる人々は、ボイドまたはオブジェクトを作ることについての異なる見解を持っています.
    そして、我々がapisから除去行為をするならば.
    // Delete /API/students/1  
    [HttpDelete]  
    public void DeleteStudent(int id)  
    {  
        var stdmr = _context.Students.SingleOrDefault(x => x.ID == id);  
        if (stdmr == null)  
        {  
            throw new HttpResponseException(HttpStatusCode.NotFound);  
        }
        _context.Students.Remove(stdmr);  
     // Now the object is labeled as deleted in memory.  
     // Now it is done  
        _context.SaveChanges();  
    }  
    
    
    ここでは、我々はAPIを構築するためにリラックス規約を使用する方法です.

    結論


    したがって、結論は常にウェブAPIで働くとき、RESTful協定に従うことです.WebサービスはSOAPベースのWebサービスよりも軽い.複数のホームがある.RESTful HTTP動詞を挿入、削除、更新、レコードを取得するアプリケーションで非常に有用です.ここで、我々はどのようにファクタを使用するか、そして、質問ヘッダーと答えヘッダーとして2つの異なるパネルがあります.ほとんどの開発者は、jQuery AJAXとWeb APIのアクションを使用する方法について混乱している.ここでは、我々も我々の行動を消費します.