APIアプリとWebアプリの違いは何ですか?


95

AzureへのWebアプリとAPIアプリのデプロイに関するいくつかのチュートリアルを読んでいます。しかし、なぜあなたが他のものを交互に使用するのかについては、まだ少し確信が持てません。

APIコントローラーを使用して新しい.NETソリューションを作成し、これをWebアプリとして展開できます。なぜAPIアプリが特に必要なのですか?これらは特にASP.NET Web API向けに最適化されていますか?WebアプリはHTMLを配信するためのものですか?

回答:


75

Azureの現在の状態に対する回答を更新します。

App Servicesは、すべてのモバイル、Api、およびWeb Appsフレーバーを単一のアプリフレームワークとして置き換え、すべての機能がロールオーバーされて、アプリケーションタイプ間でよりアクセスしやすくなりました。現在、すべてのWeb、モバイル、およびAPIアプリは、まとめてApp Servicesと呼ばれています。ギャラリーでモバイルアプリとWebアプリを作成できるようにお客様に提供していますが、それは基本的にApp Serviceアプリに解決されます。

https://azure.microsoft.com/en-us/documentation/articles/app-service-api-apps-why-best-platform/

Easy TablesやEasy APIなどのWebアプリケーションのモバイル作業用の機能。また、API CorsやAPI定義などのAPIアプリの機能がWebアプリでも機能するようになりました。顧客は、単一のWebアプリをホストして、任意のモバイルサービスとして、またはアプリサービスを通じて提供されるすべての機能を持つAPIとして機能させることができます。

また、APIの管理エクスペリエンスを提供することで、特にAPIアプリを対象とするプレビューの新しいサービスも提供しています。基本的に、トライAPIページの生成の制御、実行分析の収集、スロットルなどを行うことができます。Azure API管理機能の詳細については、機能に関するブログをご覧ください。そして、はい、APIをApp Serviceアプリとしてホストし、API管理に接続できます。

https://azure.microsoft.com/en-us/documentation/articles/api-management-get-started/


2
最新のものを維持するための称賛!ただし...通常、元の回答に対してどれだけの情報が更新されているかを考えると、新しい回答が適切だと思います。それでも、これは奇妙なケース/灰色の領域ですが、すでに賛成/受け入れられているためです。:)
David Makogon

はい、それはスレッドを新鮮に保ち、人々が答えを簡単に見られるようにするので、更新は良いと思います:)
ちびChakaravarthi 2016年

4
では、違いがない場合にAPPサービスの傘下でAPI APPとWebアプリを使用する主な理由は何か
フセインサルマン2017

1
もう1つの違い:開発者がApiアプリオプションを使用してAPI管理にアプリ定義をインポートする場合、Apiアプリとして作成されたWebアプリのみが選択可能になります
user1075679 '29

59

さまざまなアプリサービスの種類に違いがあった時期がありましたが、それはもはや正しくありません。ドキュメントは、今述べて:

3つのアプリの種類(API、Web、モバイル)の唯一の違いは、Azureポータルでそれらに使用される名前とアイコンです。

したがって、デプロイするアプリサービスの種類は問題ではありません(アイコンの外観を気にしない限り)。

更新

関数アプリは今は例外です。関数アプリを作成すると、ポータルのユーザーインターフェイスが変更されます。ただし、基盤となるWebアプリは同じです。FUNCTIONS_EXTENSION_VERSION= という名前のアプリ設定を設定すると、~1すべてのWebアプリが関数アプリになります(ポータルのユーザーインターフェイスを除く)。


別の違いがあります。APIアプリではデバッグスナップポイントを使用できません。2017年10月12日のNikhil_Joglekar_MSFTからのコメントをご覧ください。docs.microsoft.com/en
Scott Chamberlain

@ChibiChakaravarthiアプリがREST APIを使用して関数アプリかどうかを区別する方法 このAPIエンドポイントを使用しています:management.azure.com/subscriptions {subscriptionId} / resourceGroups / {resourceGroupName} /providers/Microsoft.Web/sites/ {name}?api-version = 2016-08-01に種類のキーがあります応答、そのキーは信頼性があり、有用ですか?
rohanagarwal

残念ながらありません。関数アプリは単なる別のWebアプリです。アプリの種類を知りたいのはなぜですか?
ちびChakaravarthi 2018

11

Web APIとAPIアプリの間には多くの小さな違いがありますが、非常に注目すべき重要な違いは

  1. ネイティブSwagger実装-Visual StudioでAPIアプリを作成すると、デフォルトでswagger参照が提供されます。Swaggerは、開発者にとって非常に使いやすい機能を提供し、APIコンシューマーがSwagger UIを通じてAPIを操作できるようにします。また、SwaggerベースのAPIはクライアントSDK生成(.NetベースのクライアントとJavascriptベースのクライアントの両方)を提供し、通常のメソッド呼び出しと同じようにAPIを簡単に呼び出すことができます。注:通常のWeb APIでのSwagger実装は手動で可能です。

  2. APIアプリをAzureマーケットプレイスに公開する機能。Azureマーケットプレイスは、無料または有料で利用できるすべてのAPIアプリのパブリックリポジトリです。

Channel 9からのこの 15分のビデオは、Apiアプリに関する優れた概要を提供します。


2

グレッグの答えを補足するために、違いを説明するさらに最近の記事を次に示します。

総括する:

「APIアプリの主要な機能(認証、CORS、APIメタデータ)は直接App Serviceに移行しました。この変更により、Web、モバイル、およびAPIアプリ全体で機能を利用できるようになりました。実際、3つすべてが同じMicrosoft.Web /を共有していますResource Managerのサイトリソースタイプ。」

そしてここに別の重要な注意があります:

「APIがすでにWebアプリまたはモバイルアプリとしてデプロイされている場合、新機能を利用するためにアプリを再デプロイする必要はありません。」


1

これは、何をしようとしているのかによって異なりますが、サービスを作成するときにWeb APIを使用します。ASP.Net Web APIは、幅広いクライアントが利用できるHTTPサービスを構築するためのフレームワークです。これにより、Webアプリだけでなく、Androidアプリ、IOSアプリ、Webアプリ、Windows 8アプリ、WPFアプリなどに接続するためにそれを開くことができます。

したがって、Webサービスが必要だがSOAPが不要な場合は、Web APIを使用できます。


ユーザーは、Web APIアプリはWebアプリに非常に似ていると言っています。実際、VSではそれらを簡単に組み合わせることができるため、Web APIアプリがユニークです。ローカルにIISにWeb APIまたはWebアプリをデプロイする場合、何も違いがないので、なぜAzureに違いがあるのでしょうか。
user441521

1

ここに私のコメント:

APIアプリ:特定の機能に使用されます。URLからその機能をトリガーする。GET、POST、PUT、DELETEで使用できます。BODY(Json)でパラメーターを受信できます。有効なステータスコード(失敗、成功)を含む応答

Web APP:複数の機能を使用してデプロイされたアプリケーション。たとえば、顧客の作成、更新、削除、または完全なERPの作成のためのカタログ。

関数アプリ:APIアプリと非常によく似ており、特定の機能に使用されます。URLからその機能をトリガーする。GET、POST、PUT、DELETEで使用できます。BODY(Json)でパラメーターを受信できます。有効なステータスコード(失敗、成功)を含む応答

比較表:Webアプリvs APIアプリvs Azure関数。


0

実際には、aspnet webapiをAzure WebAppにデプロイし、セルフホストをワーカーロールにデプロイできます。

WebApp(以前のAzure Webサイト)では、IISにデプロイされるため、IISの機能を利用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.