zoukankan      html  css  js  c++  java
  • mvc接口、webapi、webservice 对比

    mvc和webapi区别:

    1、MVC是建站的一种框架,倾向于返回用户的页面请求;api倾向于返回用户数据请求;

    2、mvc直接继承System.Web.Mvc.Controller; 而webapi继承的是System.Web.Http.ApiController

    3、MVC只能部署到IIS上,而webapi可以寄宿在不同的宿主上(寄宿的本质就是利用一个具体的应用程序为Web Api提供一个运行的环境,并解决请求的接收和响应的回复),如Web Host,Self Host方式
    4、接参数方式不一样:
    mvc接口不管是get请求还是post请求都可以在方法名后面接参数形式,或者直接接对象方式,但是webapi接参数方式有点复杂,get请求也可以直接在方法后面接到参数。
    但是post请求

    (1)1个参数的时候,可以用

    1
    2
    3
    4
    5
    6
    $.ajax({
            type: "post",
            url: "http://localhost:111/api/MyApi/SaveData",
            data: { """test" },
            success: function (data, status) {}
        });

      接口里面用如下方式接受

    [HttpPost]
            public bool SaveData([FromBody]string NAME)
            {
                return true;
            }

    (2)两个以及两个以上的参数,是不能用方法明后加参数形式直接接收。

    可以用实体方式(这种方法比较推荐。因为在手机端调用接口的时候更好的使用)

    5、返回结果的区别:
      mvc返回System.Web.Mvc.JsonResult(return Json(model, System.Web.Mvc.JsonRequestBehavior.AllowGet)),在前段可以直接使用;而webapi想要直接使用,需要返回JsonObject,否则需要json.parse(obj)转化

    复制代码
    private JsonObject ModelToJson(Result result)
            {
                JsonObject obj = new JsonObject();
                obj.Accumulate("code", result.code);
                obj.Accumulate("message", result.message);
                return obj;
            }
    复制代码

    备注:

    1、在新建webapi的时候,必须要添加webapi 控制器类。。不能直接新建个类,,然后改成继承ApiController,否则是无效的webapi.

    2、JsonObject 来源于 Maticsoft.Json.dll

    其实用的多了。就会感觉两个并没有太大的区别。但是如果你只是为了处理数据的话,采用webapi是比较好的选择,因为 MVC 框架负责的东西太多了,我们可以说它是一个重量级的框架,而webapi是个轻量级的框架。

    webservice 和webapi区别:

    1、webservice是基于SOAP协议的,数据格式是XML,webapi遵循的http协议,它的Response可以被而Web API的MediaTypeFormatter转换成Json、XML 或者任何你想转换的格式。
    2、webservice它只能部署在IIS上,而webapi可以寄宿在不同的宿主上(寄宿的本质就是利用一个具体的应用程序为Web Api提供一个运行的环境,并解决请求的接收和响应的回复),如Web Host,Self Host方式
    3、webservice 也可以通过ajax访问:

    1
    2
    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下 行。
        [System.Web.Script.Services.ScriptService]<br><br>
    1
    2
    3
    4
    但是需要注意的是:传参数方面的区别:
    data: "{'paraStu':{'NAME':'测0813','SEX':'男'}}",
    而webapi的参数;
    data: {'NAME':'测0813','SEX':'男'},

      也就是webservice在data里面必须用参数名paraStu进行赋值,而webapi和mvc模式下的是不需要的。两者都可以直接用实体接参数

    4、webapi无状态,相对webservice更轻量级。webapi支持如get,post等http操作,并且对限制带宽的设备,比如智能手机等支持的很好

    这样对比的话webservice貌似并不好用。但是我们为什么要用它呢,理由如下:

    1、很好的跨编程语言和跨操作系统
    2、可移植性:传统的WebService只是利用了HTTP通道,进行独立的交互,但是这个交互协议可以移植到其他协议下运作

     所以综上所述。MVC接口、webapi、webservice三者各有优缺点,在实际应用中,要综合考虑自己的实际用途,选择最合适的实现方式,可以事半功倍。

  • 相关阅读:
    [转]面向对象的三个基本特征
    C#验证Email
    天气预报
    【原】c#实现数字金额转换成大写金额
    C#发送Email
    DIV 显示最上层
    ArrayList 与 String[] 之间的转换
    Flex与.NET互操作(五):FileReference+HttpHandler实现上传/下载
    Flex与.NET互操作(三):基于WebService的数据访问(下)
    Flex与.NET互操作(六):Flex和.NET协同开发利器FluorineFx
  • 原文地址:https://www.cnblogs.com/zxdz/p/12524210.html
Copyright © 2011-2022 走看看