simple - lightweight ioc c#



Производительность Web api? (1)

Я думал ,

WebApi вместе с routing mechanism работает таким образом, что он считывает http verb (GET POST и т. Д.), А затем выполняет поиск совпадающих имен / параметров метода:

Например :

  • Если это GET а URI - api/Customers/5 :

    • метод должен начинаться с Get

    • если у него есть ID поэтому выполните поиск метода, который принимает int как параметр.

    • и т. д. (есть больше правил).

Я в основном полагаю, что они сделали это с помощью размышлений.

Вопрос:

Разве это не поражение производительности, для каждого запроса URI - для поиска всех этих данных просто для присоединения метода?

Где я мог бы легко отправить очень короткую строку из клиента, которая будет подразумевать метод на стороне сервера?

Почему бы не сделать это простым способом? Хорошо, потому что мы хотим использовать http-глаголы в качестве значения. ОК. но столько операций просто для выполнения метода

пример № 1

get api/Customers/5

может быть

a.ashx?m=gc&id=5 (method=GetCustomer & id=5)

пример № 2

put api/Customers/5?v=123

может быть

a.ashx?m=uc&id=5?v=123' (method=UpdateCustomer & id=5 & value=123)

моя еще короче.

Не поймите меня неправильно. Я считаю, что этот апи был сделан очень умными людьми, которые знали, о чем они говорят.

Просто хочу знать, что мне не хватает.


В Web api есть много опций, которые у вас нет с обработчиком HTTP, если вы его не кодируете. Полный список: http://www.asp.net/whitepapers/mvc4-release-notes#_Toc317096197

  • Поддержка OData (через атрибут Queryable)
  • Консолидация контента
  • фильтры
  • Привязка и проверка модели
  • Возможность самостоятельного размещения вне IIS
  • Генерация ссылок на связанные ресурсы, включающие правила маршрутизации
  • Полная поддержка маршрутов / маршрутизации
  • Возможность создания пользовательской справки и тестовых страниц с использованием IApiExplorer

Сравнение производительности HttpHandler vs WebAPI: http://www.west-wind.com/weblog/posts/2012/Sep/04/ASPNET-Frameworks-and-Raw-Throughput-Performance

Как всегда, вам нужно выбрать подходящую вам технологию, если вы хотите, чтобы производительность шла с помощью Http Handler. Если вы хотите, чтобы гибкость и отдых шли с помощью Web API. Возможно, вам захочется отдохнуть, если вы откроете веб-службы, которые другие будут потреблять





asp.net-web-api