web-dev-qa-db-ja.com

MVCのWeb APIとREST AP​​Iの違いは何ですか?

REST AP​​Iについて少し理解しています。私の知る限りでは、HTTPサービス(GET POST PUT DELETE)を使用するために使用されます。

Webapiコントローラを追加すると、次のような基本的なメソッドが提供されます:

 public class Default1Controller : ApiController
    {
        // GET api/default1
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

        // GET api/default1/5
        public string Get(int id)
        {
            return "value";
        }

        // POST api/default1
        public void Post([FromBody]string value)
        {
        }

        // PUT api/default1/5
        public void Put(int id, [FromBody]string value)
        {
        }

        // DELETE api/default1/5
        public void Delete(int id)
        {
        }
    }

私の質問は、Web APIとREST AP​​Iの違いは何ですか?

残りの定義から、上記のコードはRESTベースなので、MVCの通常のWeb APIは何ですか? RESTでWeb APIを使用すると言う人がいるので、少し混乱していますか?

両方の理解を深めてください。

35
rohit singh

私たちの多くと同じように、私はそこにいました。 Web API、REST、RESTful、HTTP、SOAP、WCF、Webサービスなど、紛らわしい言葉がたくさんあります。しかし、私はあなたが尋ねたものだけの簡単な説明をするつもりです。

REST

APIでもフレームワークでもありません。これは単なるアーキテクチャ上の概念です。詳細を見つけることができます こちら

RESTful

RESTfulの正式な定義に出会ったことはありません。 APIが REST仕様 に準拠しているかどうかを言うのは、単なる別の流行語だと思います。

編集:REST AP​​Iを標準化する別のトレンドのオープンソースイニシアチブ OpenAPI仕様(OAS) (旧称Swagger)があります。

Web API

HTTP APIを記述するためのオープンソースフレームワーク。これらのAPIはRESTfulでもそうでなくてもかまいません。私たちが書いているほとんどのHTTP APIはRESTfulではありません。このフレームワークはHTTPプロトコル仕様を実装しているため、URI、要求/応答ヘッダー、キャッシング、バージョン管理、さまざまなコンテンツタイプ(形式)などの用語を耳にします。

注:Webサービスという用語は、使用するのがわかりにくい用語であるため、意図的に使用していません。一部の人々はこれを一般的な概念として使用しており、私はそれらをHTTP APIと呼ぶことを好みました。 Web APIのようなMicrosoftによる「Webサービス」という名前の実際のフレームワークがあります。ただし、SOAPと呼ばれる別のプロトコルを実装しています。

51
Rajiv

ASP.NET Web APIは、ブラウザーやモバイルデバイスを含む幅広いクライアントに到達するHTTPサービスを簡単に構築できるフレームワークです。 ASP.NET Web APIは、.NET FrameworkでRESTfulアプリケーションを構築するための理想的なプラットフォームです。

残り

RESTのスイートスポットは、データに対するCRUD操作を処理するためにインターネット経由でパブリックAPIを公開する場合です。 RESTは、単一の一貫したインターフェースを介して名前付きリソースにアクセスすることに焦点を当てています。

SOAP

SOAPは独自のプロトコルを提供し、データとしてではなくアプリケーションロジックの一部をサービスとして公開することに焦点を当てています。 SOAPは操作を公開します。 SOAPは、名前付き操作へのアクセスに重点を置いており、それぞれ異なるインターフェイスを介していくつかのビジネスロジックを実装します。

SOAPは一般に「Webサービス」と呼ばれますが、これは誤った呼び名です。 SOAPには、Webに関連するものはほとんどありません。 RESTは、URIおよびHTTPに基づいた真の「Webサービス」を提供します。

リファレンス: http://spf13.com/post/soap-vs-rest

そして最後に、彼らが参照できるのは、REST対RPCです。これを参照してください。 http://encosia.com/rest-vs-rpc-in-asp-net-web-api -who-cares-it-does-both /

8
Chadembox