Web应用程序和Web API有什么区别?

时间:2016-06-05 15:22:11

标签: asp.net-web-api web-applications

听起来听起来很幼稚但是当有人在他们的论文中提到它时,Web应用程序和Web API有多么不同? 他们的功能有多么不同?

6 个答案:

答案 0 :(得分:12)

非常简短:网络应用程序,它是您在浏览器中看到的网站,以及web api,它是您在Web应用程序中使用的服务。

另见Difference between ASP.NET MVC and ASP.NET Web API

  

Asp.Net MVC用于创建返回两个视图的Web应用程序   和数据,但Asp.Net Web API用于创建完整的HTTP   服务采用简单易行的方式,只返回不查看的数据。

答案 1 :(得分:4)

Web应用程序用于通过视图进行人工交互,而Web API又称Web服务用于系统到系统的交互(以编程方式进行信息交换)。他们交换数据。

答案 2 :(得分:1)

网络应用是在您的浏览器中运行的网站,网络Api就是服务

答案 3 :(得分:0)

网络应用程序:

这是针对用户的端到端解决方案。这意味着用户可以:

  • 使用浏览器打开它
  • 与其互动。他可以单击某些内容,经过一些处理后,其结果将反映在浏览器屏幕中。人机交互

Web API

仅凭Web API,用户就无法与其进行交互,因为它仅返回数据,而不返回视图。

  • 这是一个与另一个系统交互的系统
  • 它不返回视图,它返回数据
  • 它具有一个端点集,其他系统可以通过该端点集来获取它提供的数据。

使用模拟解释

网络应用程序:

假设我们有厨师。我们可以随时要求他为我们做饭!假设我们请厨师为我们做汉堡。他将处理我们的请求,并将为我们提供汉堡。 (这就像一个Web应用程序;一个完整的解决方案。)

Web API

现在,如果我们要求他为我们制作“麦当劳”汉堡,他可以做饭并带给我们吗?没有! API的概念来了! (在此示例中,假设麦当劳只将外卖给厨师)

McDonalds-Takeaways就像一个API。这使得其他系统(厨师)可以击中它并带回所需的数据。因此,我们可以要求我们的解决方案(我们的厨师)来

  • 去麦当劳外卖店
  • 买汉堡,给我们拿来

所以发生了什么事,我们要求我们的“系统”与McDonalds-takeaways(API系统)进行对话,并带回我们想要的结果。

答案 4 :(得分:0)

简单来说,Web应用程序对请求的响应是html,css,javascript和浏览器可以呈现(图形)的任何内容,而Web api返回非图形“数据”。话虽如此,我认为我们可以使Web api像Web应用程序一样工作,因为html仍然是数据。

答案 5 :(得分:0)

Create :

    public IHttpActionResult GetAllProduct()
        {
            IList<product> pro = null;

            using (var ctx = new TestMVCEntities())
            {
                pro = ctx.products.ToList();


            }

            if (pro.Count == 0)
            {
                return NotFound();
            }

            return Ok(pro);
        }

        public IHttpActionResult PostNewProduct(product pro)
        {

            using (var ctx = new TestMVCEntities())
            {

                ctx.InUPProduct(pro.pid,pro.pname,pro.pprice);

                ctx.SaveChanges();
            }

            return Ok();
        }

        public IHttpActionResult PutOldProduct(product pro)
        {

            using (var ctx = new TestMVCEntities())
            {

                product c = (from x in ctx.products
                              where x.pid == pro.pid
                              select x).First();

                if (c != null)
                {
                    c.pname = pro.pname;
                    c.pprice = pro.pprice;
                    ctx.SaveChanges();
                }
                else
                {
                    return NotFound();
                }
            }

            return Ok();
        }

        public IHttpActionResult Delete(int id)
        {

            using (var ctx = new TestMVCEntities())
            {
                var pro = ctx.products
                    .Where(s => s.pid == id)
                    .FirstOrDefault();

                ctx.Entry(pro).State = System.Data.Entity.EntityState.Deleted;
                ctx.SaveChanges();
            }

            return Ok();
        }




Consume :

  public JsonResult GetProductsData()
        {
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri("http://localhost:44350/api/");
                //HTTP GET
                var responseTask = client.GetAsync("product");
                responseTask.Wait();

                var result = responseTask.Result;
                if (result.IsSuccessStatusCode)
                {
                    var readTask = result.Content.ReadAsAsync<IList<product>>();
                    readTask.Wait();

                    var alldata = readTask.Result;

                    var rsproduct = from x in alldata
                                 select new[]
                                 {
                                 Convert.ToString(x.pid),
                                 Convert.ToString(x.pname),
                                 Convert.ToString(x.pprice),
                                 Convert.ToString(x.pimage),
                                 Convert.ToString(x.pisdemand),
                                 Convert.ToString(x.pcname),
                                 Convert.ToString(x.psupply)

                          };

                    return Json(new
                    {
                        aaData = rsproduct
                    },
        JsonRequestBehavior.AllowGet);


                }
                else //web api sent error response 
                {

                   var pro = Enumerable.Empty<product>();


                    return Json(new
                    {
                        aaData = pro
                    },
        JsonRequestBehavior.AllowGet);


                }
            }
        }

        public JsonResult InupProduct(string id,string pname, string pprice)
        {
            try
            {



                product obj = new product
                {
                    pid = Convert.ToInt32(id),
                    pname = pname,
                    pprice = Convert.ToDecimal(pprice)
                };



                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri("http://localhost:44350/api/product");

                    //HTTP POST
                    var postTask = client.PostAsJsonAsync<product>("product", obj);
                    postTask.Wait();

                    var result = postTask.Result;
                    if (result.IsSuccessStatusCode)
                    {
                        return Json(1, JsonRequestBehavior.AllowGet);
                    }
                    else
                    {
                        return Json(0, JsonRequestBehavior.AllowGet);
                    }
                }


                /*context.InUPProduct(Convert.ToInt32(id),pname,Convert.ToDecimal(pprice));

                return Json(1, JsonRequestBehavior.AllowGet);*/
            }
            catch (Exception ex)
            {
                return Json(0, JsonRequestBehavior.AllowGet);
            }

        }

        public JsonResult deleteRecord(int ID)
        {
            try
            {
                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri("http://localhost:44350/api/product");

                    //HTTP DELETE
                    var deleteTask = client.DeleteAsync("product/" + ID);
                    deleteTask.Wait();

                    var result = deleteTask.Result;
                    if (result.IsSuccessStatusCode)
                    {

                        return Json(1, JsonRequestBehavior.AllowGet);
                    }
                    else
                    {
                        return Json(0, JsonRequestBehavior.AllowGet);
                    }
                }



               /* var data = context.products.Where(x => x.pid == ID).FirstOrDefault();
                context.products.Remove(data);
                context.SaveChanges();
                return Json(1, JsonRequestBehavior.AllowGet);*/
            }
            catch (Exception ex)
            {
                return Json(0, JsonRequestBehavior.AllowGet);
            }
        }