В чем разница между приложением API и веб-приложением?

94

Я прочитал несколько руководств по развертыванию веб-приложений и приложений API в Azure. Однако я все еще не уверен, почему вы бы использовали одно вместо другого.

Я могу создать новое решение .NET с контроллерами API и развернуть его как веб-приложение, так зачем мне конкретно приложение API? Оптимизированы ли они специально для веб-API ASP.NET, тогда как веб-приложения предназначены для доставки HTML?

envio
источник

Ответы:

76

Обновление ответа на текущее состояние Azure,

Службы приложений теперь заменяют все разновидности мобильных приложений, Api и веб-приложений в виде единой платформы приложений со всеми функциями, переданными, чтобы сделать вещи более доступными для разных типов приложений. В настоящее время все веб-приложения, мобильные приложения и приложения Api вместе называются службами приложений. Мы по-прежнему предлагаем клиенту иметь возможность создавать мобильное приложение и веб-приложение в галерее, но в основном это разрешается в приложении-службе приложений.

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

Функции для мобильной работы с веб-приложением, такие как Easy Tables и Easy API. А функции для приложений API, такие как API Cors и определения API, теперь работают и в веб-приложениях. Клиент может разместить отдельное веб-приложение, которое будет действовать как любая мобильная служба или API со всеми функциями, предлагаемыми через службы приложений.

У нас также есть новая услуга в предварительном просмотре, особенно нацеленная на приложения API, предлагая возможности управления для ваших API. В основном вы можете управлять созданием страниц API try, собирать аналитику выполнения, регулировать и многое другое. Посетите блог о функциях, чтобы узнать больше о функциях управления API Azure. И да, вы можете разместить API в качестве приложения службы приложений и подключиться к API Management.

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

Чиби Чакараварти
источник
2
Престижность за обновление информации! Хотя ... Обычно я думаю, что новый ответ будет в порядке, учитывая, сколько информации было обновлено по сравнению с исходным ответом. С другой стороны, я думаю, что это странный случай / серая область, поскольку он уже был одобрен / принят. :)
Дэвид Макогон
Да, я думаю, что обновление - это хорошо, потому что оно сохраняет поток и позволяет людям легко увидеть ответ :).
Chibi Chakaravarthi
4
Итак, какова основная причина наличия API-приложений и веб-приложений под эгидой APP Services, если нет никакой разницы?
Хусейн Салман
1
Еще одно отличие: если разработчик хочет импортировать определение приложения в управление API с помощью параметра Api App, для выбора будут доступны только веб-приложения, созданные как приложения Api
user1075679
59

Был момент, когда существовали различия между разными типами сервисов приложений, но это уже не так. В документации теперь говорится:

Единственная разница между тремя типами приложений (API, веб, мобильные) - это имя и значок, используемые для них на портале Azure.

Таким образом, больше не имеет значения, какой тип службы приложений вы выберете для развертывания (если вас не волнует, как выглядит значок).

ОБНОВИТЬ

Приложения-функции теперь являются исключением. Создание приложения-функции изменяет пользовательский интерфейс на портале. Однако базовое веб-приложение ничем не отличается. Установка параметра приложения с именем FUNCTIONS_EXTENSION_VERSION= ~1превращает любое веб-приложение в приложение-функцию (за исключением пользовательского интерфейса на портале).

Gregjhogan
источник
Есть еще одно отличие. Вы не можете использовать точки отладки в приложениях api. См. Комментарии Nikhil_Joglekar_MSFT от 12 октября 2017 г. docs.microsoft.com/en-us/visualstudio/debugger/…
Скотт Чемберлен
@ChibiChakaravarthi Как определить, является ли приложение функциональным, используя rest api? Я использую эту конечную точку API: management.azure.com/subscriptions {subscriptionId} / resourceGroups / {resourceGroupName} /providers/Microsoft.Web/sites/ {name}? Api-version = 2016-08-01 Есть добрый ключ в ответ: этот ключ надежен и полезен?
rohanagarwal
К сожалению нет. приложение-функция - это просто еще одно веб-приложение. Могу ли я узнать, почему вы хотите знать тип приложения?
Chibi Chakaravarthi 05
11

Между веб-API и API-приложениями существует множество незначительных различий, но наиболее заметными и ключевыми различиями являются

  1. Собственная реализация Swagger. Когда вы создаете приложение API в Visual Studio, ссылка на Swagger предоставляется по умолчанию. Swagger предоставляет пользователям API очень удобные для разработчиков функции для взаимодействия с вашим API через пользовательский интерфейс Swagger. Кроме того, API на основе Swagger обеспечивает генерацию клиентского SDK (как клиента на основе .Net, так и клиента на основе Javascript), что упрощает вызов API, как обычный вызов метода. Примечание. Реализация Swagger на обычном веб-API возможна вручную.

  2. Возможность публиковать свои приложения API в Azure Market Place. Azure Market Place - это общедоступный репозиторий для всех приложений API, которые можно использовать бесплатно или за плату.

это 15-минутное видео с канала Channel 9 дает отличный обзор приложений Api.

Венкатеш Муниянди
источник
2

Чтобы дополнить ответ Грега, вот еще более свежая статья с описанием различий.

Подводить итоги:

«Ключевые функции приложений API - аутентификация, метаданные CORS и API - были перенесены непосредственно в службу приложений. С этим изменением функции доступны в веб-приложениях, мобильных приложениях и приложениях API. Фактически, все три используют один и тот же Microsoft.Web / тип ресурса сайтов в диспетчере ресурсов ".

И еще одно важное замечание:

«Если ваш API уже развернут как веб-приложение или мобильное приложение, вам не нужно повторно развертывать приложение, чтобы воспользоваться преимуществами новых функций».

Руди Скоггинс
источник
1

Это может зависеть от того, что вы пытаетесь сделать, но при создании службы вы должны использовать веб-API. Веб-API ASP.Net - это платформа для создания HTTP-служб, которые могут использоваться широким кругом клиентов. Это позволяет вам создавать его не только для веб-приложения, но и для подключения к приложениям Android, приложениям IOS, веб-приложениям, приложениям Windows 8, приложениям WPF и т. Д.

Поэтому, если вам нужна веб-служба, но не нужен протокол SOAP, вы можете использовать веб-API.

Дэниел Иган
источник
Я думаю, что пользователь говорит, что приложение веб-api настолько похоже на веб-приложение, и на самом деле в VS мы можем легко их смешивать, что делает приложение веб-api уникальным. Когда мы развертываем веб-API или веб-приложение в IIS локально, нет никакой разницы, так почему разница в Azure?
user441521
1

Вот мои комментарии:

Приложение API: используется для определенных функций. Запуск этой функции по URL-адресу. Может использоваться с GET, POST, PUT, DELETE. Может получать параметры в BODY (Json). Ответ с действительным кодом состояния (сбой, успех.)

Веб-приложение: приложение, развернутое с множеством функций, например каталог для создания, обновления и удаления клиентов или для создания полной ERP.

Функция APP: очень похожа на приложение API, используется для определенных функций. Запуск этой функции по URL-адресу. Может использоваться с GET, POST, PUT, DELETE. Может получать параметры в BODY (Json). Ответ с действительным кодом состояния (сбой, успех.)

Таблица сравнения: веб-приложение, приложение API и функции Azure.

Исраэль Кальдерон
источник
0

Фактически вы можете развернуть свой aspnet webapi в Azure WebApp и самостоятельно разместить в рабочих ролях.

В WebApp (бывшие веб-сайты Azure) он будет развернут в IIS, чтобы вы могли воспользоваться функциями IIS.

Тьяго Кастодио
источник