REST APIについて少し理解しています。私の知る限りでは、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 APIの違いは何ですか?
残りの定義から、上記のコードはRESTベースなので、MVCの通常のWeb APIは何ですか? RESTでWeb APIを使用すると言う人がいるので、少し混乱していますか?
両方の理解を深めてください。
私たちの多くと同じように、私はそこにいました。 Web API、REST、RESTful、HTTP、SOAP、WCF、Webサービスなど、紛らわしい言葉がたくさんあります。しかし、私はあなたが尋ねたものだけの簡単な説明をするつもりです。
APIでもフレームワークでもありません。これは単なるアーキテクチャ上の概念です。詳細を見つけることができます こちら 。
RESTfulの正式な定義に出会ったことはありません。 APIが REST仕様 に準拠しているかどうかを言うのは、単なる別の流行語だと思います。
編集:REST APIを標準化する別のトレンドのオープンソースイニシアチブ OpenAPI仕様(OAS) (旧称Swagger)があります。
HTTP APIを記述するためのオープンソースフレームワーク。これらのAPIはRESTfulでもそうでなくてもかまいません。私たちが書いているほとんどのHTTP APIはRESTfulではありません。このフレームワークはHTTPプロトコル仕様を実装しているため、URI、要求/応答ヘッダー、キャッシング、バージョン管理、さまざまなコンテンツタイプ(形式)などの用語を耳にします。
注:Webサービスという用語は、使用するのがわかりにくい用語であるため、意図的に使用していません。一部の人々はこれを一般的な概念として使用しており、私はそれらをHTTP APIと呼ぶことを好みました。 Web APIのようなMicrosoftによる「Webサービス」という名前の実際のフレームワークがあります。ただし、SOAPと呼ばれる別のプロトコルを実装しています。
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 /