sunil kumar meena Ответов: 1

Как веб-API-это малый вес, чем ВЭФ остальные?


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

Я искал разницу между WebApi и WEF REST, и почти в каждой статье я обнаружил, что WebApi легче, чем WCF REST, но ни один из них не сказал "почему".

Насколько я понимаю (очень мало знаний), оба работают по протоколу HTTP и могут возвращать данные JSON (предполагается, что они легче XML). Если тип протокола и вернуть данные одинаковы по значению, чем то, что делают WebApit легче?

Что я уже пробовал:

Я проверил несколько статей, но не нашел точного ответа. Все говорят о SOAP vs REST, XML vs JSON или HTTP vs других протоколах, но никто четко не сказал, почему WebApiy легче WCF REST.

1 Ответов

Рейтинг:
11

Afzaal Ahmad Zeeshan

Цитата:
Я искал разницу между WebApi и WEF REST, и почти в каждой статье я обнаружил, что WebApi легче, чем WCF REST, но ни один из них не сказал "почему".
Я расскажу вам о том," почему " часть их постов и повышенный интерес к этому вопросу мотивирует меня написать статью, охватывающую большинство частей, где ASP.NET веб-API кажется хорошим подходом по сравнению с использованием веб-сервисов WCF framework.
Цитата:
Насколько я понимаю (очень мало знаний), оба работают по протоколу HTTP и могут возвращать данные JSON (предполагается, что они легче XML). Если тип протокола и вернуть данные одинаковы по значению, чем то, что делают WebApit легче?
Говоря об этой части, WCF работает на нескольких протоколах, а не только на REST API или HTTP-протоколе. Это преимущество WCF над ASP.NET веб-API, поскольку он может общаться практически в любом протоколе,он может пойти на один шаг глубже, чем HTTP — в протоколе TCP. JSON на самом деле намного легче XML, я говорю об этом понятии в своей статье, От нуля до героя в JSON с C#[^].

Теперь переходим к вашему вопросу: главный фактор, делающий веб-API ASP.NET легче, чем платформа WCF, заключается в том, что большинство библиотек, необходимых для запуска веб-API, уже работают в самой платформе ASP.NET. Так что, если вы сравните общее использование ресурсов, разница будет небольшой (или не будет) вообще. Веб-API ASP.NET использует ASP.NET MVC для запуска и выполнения того, что вам нужно. WCF, с другой стороны, представляет собой полную структуру (как и ASP.NET), и тогда для работы потребуются полные ресурсы, и вы полагаете, что он потребляет больше ресурсов. Веб-API - это просто обработчик одного (или нескольких) URL-адресов в определенном доменном имени и запускается только по запросу.

Во-вторых, большинство программистов также должны говорить о легком коде, который будет написан. Это совершенно то место, где ASP.NET веб-API убивает использование WCF на всех этапах. Код для одного CRUD-контроллера API выглядит следующим образом,
[Route("api/tickets")]
public class TicketsApiController : ApiController {
    public List<ticket> GetTickets() {
        return Model.GetAllTickets();
    }
 
    [HttpGet]
    [Route("{id}")]
    public Ticket GetTicket(int id) {
        return Model.GetAllTickets().Where(x => x.Id == id).FirstOrDefault();
    }

    [HttpPost]
    public void SaveTicket([FromBody] Ticket ticket) {
        if(ticket != null) {
            Model.Add(ticket);
        }
    }
    
    [HttpPut]
    public void UpdateTicket(int id, [FromBody] Ticket ticket) {
        if(ticket != null && !(id < 0)) {
            Model.UpdateTicket(id, ticket);
        }
    }
  
    [HttpDelete]
    public void DeleteTicket(int id) {
        Model.Remove(Model.Find(x => x.Id == id));
    }
}
</ticket>

Это код, который я написал прямо сейчас, менее чем за 5 минут, и он будет работать-при условии, что мой Model объект отлично работает и справляется с большинством вещей.

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

Вот некоторые из тех "Почему", которые люди (включая и особенно меня) предпочитают использовать ASP.NET веб-API через WCF.