web-dev-qa-db-ja.com

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

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

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

80
envio

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

App Servicesは、すべてのMobile、Api、およびWeb Appsフレーバーを単一のアプリフレームワークとして置き換え、すべての機能をロールオーバーして、アプリケーションの種類を越えてアクセスしやすくしました。 現在、すべてのWeb、モバイル、ApiアプリはまとめてAppサービスと呼ばれています。引き続き、モバイルアプリと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 Management機能の詳細については、機能ブログをご覧ください。そして、はい、APIをApp Serviceアプリとしてホストし、API Managementに接続することができます。

https://Azure.Microsoft.com/en-us/documentation/articles/api-management-get-started/

62

あるアプリサービスタイプ間で違いがあった時点がありましたが、それはもはや真実ではありません。 ドキュメント は次のようになりました:

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

そのため、どのアプリサービスタイプをデプロイするかは重要ではありません(アイコンがどのように見えるか気にしない限り)。

UPDATE

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

56
gregjhogan

Web APIとAPI Appsには多くの小さな違いがありますが、非常に注目すべき重要な違いは次のとおりです。

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

  2. APIアプリをAzure Market Placeに公開する機能。 Azure Market Placeは、無料または無料で使用できるすべてのAPIアプリの公開リポジトリです。

this チャンネル9の15分間のビデオは、Apiアプリに関する優れた概要を提供します。

11

ここに私のコメント:

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

Web APP:顧客の作成、更新、削除、または完全なERPを作成するためのカタログなど、複数の機能を備えたアプリケーション。

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

Comparation table: Web App vs API app vs Azure Functions.

1
Israel Calderon

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

総括する:

「APIアプリの主要な機能である認証、CORS、およびAPIメタデータは直接App Serviceに移行しました。この変更により、これらの機能はWeb、モバイル、APIアプリで利用可能になりました。リソースマネージャのサイトリソースタイプ。」

そして、もう一つ重要な注意事項があります。

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

1
Rudy Scoggins

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

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

1
Daniel Egan

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

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

0
Thiago Custodio