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

Есть ли разница между веб-API и веб-службой ? Или они одно и то же?

Ответ 1

Веб-сервис обычно предлагает WSDL, из которого вы можете автоматически создавать клиентские заглушки. Веб-сервисы основаны на протоколе SOAP. ASP.NET Web API - это новая платформа Microsoft, которая помогает создавать интерфейсы на основе REST. Ответом может быть либо JSON, либо XML, но невозможно автоматически сгенерировать клиентов, потому что Web API не предлагает описание сервиса, такое как WSDL от Web Services. Так что это зависит от ваших требований, какой из методов вы хотите использовать. Возможно, даже WCF лучше соответствует вашим требованиям, просто посмотрите документацию MSDN.

Ответ 2

Основное различие между веб-сервисами и веб-API

Веб-сервис:

1) Это сервис на основе SOAP, который возвращает данные в виде XML.

2) Поддерживается только протокол HTTP.

3) Это не открытый код, но может использоваться любым клиентом, который понимает XML.

5) Для получения и отправки данных по сети требуется протокол SOAP, поэтому это не легкая архитектура.

Веб-API:

1) Web API является службой на основе HTTP и возвращает данные JSON или XML по умолчанию.

2) Поддерживает протокол HTTP.

3) Он может быть размещен в приложении или IIS.

4) Это открытый исходный код, и он может использоваться любым клиентом, который понимает JSON или XML.

5) Это облегченная архитектура и хорошо подходит для устройств с ограниченной полосой пропускания, таких как мобильные устройства.

Ответ 3

API против веб-службы

Просто вставьте сводку связанной статьи:

Резюме:

  • Все веб-службы являются API-интерфейсами, но все API-интерфейсы не являются веб-службами.

  • Веб-службы могут не выполнять все операции, выполняемые API.

  • Веб-служба использует только три стиля использования: SOAP, REST и XML-RPC для тогда как API может использовать любой стиль для связи.

  • Веб-службе всегда нужна сеть для ее работы, тогда как API не нуждается в сети для ее работы.

  • API упрощает взаимодействие непосредственно с приложением, тогда как веб-служба - это...

Подробнее: Разница между API и веб-сервисом | Разница между | API против веб-службы http://www.differencebetween.net/technology/internet/difference-between-api-and-web-service/#ixzz3e3WxplAv

См. приведенную выше ссылку для получения полного ответа.

Ответ 4

Для более подробной информации посетите эту ссылку Диаграмма

Ответ 5

Веб-сервис, если вы хотите, это веб-API. В частности, веб-API обычно означает веб-службу RESTful (на основе HTTP), а веб-служба обычно означает SOAP + WSDL (+HTTP или SMTP или JMS...).

Как правило, веб-службы RESTful противоположны веб-службам (WSDL, SOAP), но недавно был введен термин веб-службы RESTful (с заглавной буквой W), что означает RESTful + WSDL + SOAP.

Проверьте эту таблицу на предмет различий между тремя концепциями: http://www2.mokabyte.it/cms/figureproviderservlet?figureId=IUS-6NS-OBV_7f000001_19624184_5621ef4e--Fig02.jpg

Надеюсь, поможет!

Ответ 6

Веб-сервис абсолютно такой же, как веб-API, - чуть более ограниченный с точки зрения базового формата данных. Оба протокола используют протокол HTTP, и оба позволяют создавать службы RESTful. И не забывайте о других протоколах, таких как JSON-RPC - возможно, они подходят лучше.

Ответ 7

API-интерфейсы могут быть представлены несколькими способами, такими как: COM-объекты, DLL и JAR файлы или RMI на Java,

  • Все веб-службы являются API-интерфейсами, но все API-интерфейсы не являются веб-службами.
  • Веб-службы могут не выполнять все операции, выполняемые API.
  • Веб-служба использует только три стиля использования: SOAP, REST и XML-RPC для тогда как API может использовать любой стиль для связи.
  • Веб-служба всегда нуждается в сети для ее работы, тогда как API не нужна сеть для ее работы.

Ответ 8

В контексте ASP.Net веб-API - это контроллер, базовый класс которого - ApiController и не использует представления. Веб-сервис - это класс, производный от WebService и имеющий автоматическую генерацию WSDL. По умолчанию это API- интерфейс SOAP, но вы также можете использовать JSON, добавив ScriptServiceAttribute.

Ответ 9

public class Service1 : System.Web.Services.WebService
    {

        private List<string> GetLines(string filename) {

            List<string> lines = new List<string>();

            //filename: ime fajla (valute.txt) SA EXT
            using (StreamReader sr = new StreamReader(Server.MapPath("podaci/" + filename))) {
                string line;
                while ((line = sr.ReadLine()) != null) {
                    lines.Add(line);
                }
            }

            return lines;

        }

        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }

        [WebMethod]
        public double ProcitajKursNaDan(DateTime datum, string valuta) {
            List<string> podaci = GetLines("valute.txt");

            double kurs = 0.0;

            // Pronalazenje upisa
            for (int i = 0; i < podaci.Count; i++) {
                string[] linija = podaci[i].Split('|');
                /* Датум[0] | Oznaka valute[1] | Kurs[2] */
                string dat = linija[0];
                string val = linija[1];
                string vrednost = linija[2];

                // Uklanjanje viska
                dat = dat.Trim(); 
                val = val.Trim(); 
                vrednost = vrednost.Trim();

                // Konverzija:
                DateTime datIzFajla = DateTime.ParseExact(dat, "d/M/yyyy", null);

                double kursIzFajla = Convert.ToDouble(vrednost);


                if (DateTime.Compare(datIzFajla, datum) == 0 && val == valuta)
                    kurs = kursIzFajla;
            }


            return kurs;
        }

        [WebMethod]
        public bool UpisiKursNaDan(DateTime datum, string valuta, double Kurs) {
            string date = datum.ToString("d/M/yyyy");
            string linijaZaUpis = date + " | " + valuta + " | " + Kurs.ToString();

            bool success = false;

            try
            {
                StreamWriter sw = new StreamWriter(Server.MapPath("podaci/valute.txt"), true);
                sw.WriteLine(linijaZaUpis);
                sw.Close();

                success = true;
            }
            catch {
                success = false;
            }
            return success;
        }

        [WebMethod]
        public List<string> ProcitajSveValute() {
            List<string> linije = GetLines("valute.txt");

            List<string> ValuteIzFajla = new List<string>();

            for (int i = 0; i < linije.Count; i++) {
                string linija = linije[i];
                string valuta = linija.Split('|')[1];
                valuta = valuta.Trim();
                ValuteIzFajla.Add(valuta);
            }

            List<string> ValuteKraj = ValuteIzFajla.Distinct().ToList();
            return ValuteKraj;
        }
    }
}
//using A10App.localhost;

//namespace A10App
//{
//    public partial class pregledkursa : System.Web.UI.Page
//    {
//        protected void Page_Load(object sender, EventArgs e)
//        {
//            if (!this.IsPostBack) { 
//                Service1 servis = new Service1();
//                List<string> valute = servis.ProcitajSveValute().ToList();
//                for (int i = 0; i < valute.Count; i++)
//                    DropDownList1.Items.Add(valute[i]);
//            }
//        }

//        protected void Button1_Click(object sender, EventArgs e)
//        {
//            string datum = TextBox1.Text;
//            string valuta = DropDownList1.Text;

//            Service1 servis = new Service1();

//            double kurs = servis.ProcitajKursNaDan(DateTime.ParseExact(datum, "d/M/yyyy", null), valuta);

//            if (kurs != 0.0)
//                Label2.Text = kurs.ToString();
//            else
//                Label2.Text = "Nije pronadjen kurs";

//        }
//    }
//}
//namespace A10App
//{
//    public partial class azuriranjeliste : System.Web.UI.Page
//    {
//        protected void Page_Load(object sender, EventArgs e)
//        {
//            if (!this.IsPostBack)
//            {
//                Service1 servis = new Service1();
//                List<string> valute = servis.ProcitajSveValute().ToList();
//                for (int i = 0; i < valute.Count; i++)
//                    DropDownList1.Items.Add(valute[i]);
//            }
//        }

//        protected void Button1_Click(object sender, EventArgs e)
//        {
//            string datum = TextBox1.Text;
//            string valuta = DropDownList1.Text;
//            string kurs = TextBox2.Text;

//            Service1 servis = new Service1();

//            servis.UpisiKursNaDan(DateTime.ParseExact(datum, "d/M/yyyy", null), valuta, Convert.ToDouble(kurs));

//        }
//    }
//}

Ответ 10

Ну, TMK может быть прав в мире Microsoft, но в мире всего программного обеспечения, включая Java/Python/etc, я считаю, что нет никакой разницы. Это то же самое.

Ответ 11

Разница между веб-сервисом и веб-API прекрасно объясняется здесь:

https://softwareengineering.stackexchange.com/questions/38691/difference-between-web-api-and-web-service

Текст по ссылке:

Веб-службы - это стандарт, определенный W3C, поэтому к ним можно получить доступ автоматически или автоматически (WSDL/UDDI). Все это основано на XML, поэтому каждый может его назвать. И каждый аспект службы очень четко определен. Там есть стандарт описания параметров, стандарт передачи параметров, стандарт ответа, стандарт обнаружения и т.д. И т.д. Возможно, вы могли бы написать 2000 страниц, которые описывали бы стандарт. Существуют даже некоторые "дополнительные" стандарты для выполнения "стандартных" вещей, таких как аутентификация.

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

Веб-API обычно выполняется как HTTP/REST, ничего не определено, вывод может быть, например. JSON/XML, входные данные могут быть XML/JSON/или обычными данными. Нет никаких стандартов для чего-либо = > нет автоматического вызова и обнаружения. Вы можете предоставить некоторое описание в текстовом файле или PDF, вы можете вернуть данные в Windows-1250 вместо unicode и т.д. Для описания стандарта это будет двухстраничная брошюра с некоторой простой информацией, и вы определите все остальное.

Web переключается на Web API/REST. Веб-сервисы действительно не лучше Web API. Очень сложно разрабатывать и потреблять гораздо больше ресурсов (пропускная способность и оперативная память)... и из-за всех преобразований данных (REQUEST- > XML- > DATA- > RESPONSE- > XML- > VALIDATION- > CONVERSION- > DATA) очень медленно.

Eg. В WebAPI вы можете упаковать данные, отправить их сжатым и un-compress + un-pack на клиенте. В SOAP вы можете сжимать только HTML-запрос.

Ответ 12

Все WebServices - это API, но все API не являются WebServices, API, предоставляемый в Web, называется веб-сервисами.

Ответ 13

Две вещи очень просты для понимания,

  1. API: Это слой на приложении, который может обслуживать другой запрос приложения локально.
  2. Веб-сервис: API, который может обслуживать запросы и отвечать по сети, удаленной системе через Интернет или Интернет.

Примечание. Все веб-службы - это API, но не все API - это веб-службы.