zoukankan      html  css  js  c++  java
  • 简单记下 WebAPI 在工作中的使用

    最近公司在上线CRM系统,用户方希望在客户现场扫描二维码等信息可以获取对应的生产信息,CRM顾问方团队希望MES小组这边提供接口返回数据给他们。经过讨论后,采用WebApi的提供数据接口,为此,我准备搭建一个项目平台。

    补充:之前在CSDN上传的源码有不足之处,传参违背了WEBAPI设计初衷,在webAPI中route规则修改为  [Route("api/GetProduct02/{boxNO}")],调用的时候之前采用了WebForm格式的?形式后接参数,这里可以改成直接为/参数内容。eg:Uri _address = new Uri(_baseAddress, "/api/GetProduct02/" + boxno);

    step1:

    使用visual studio 2013 创建一个空的WebAPI

    点击确定,完成项目新建向导。

    Step 2

    WebApiConfig 里面添加如下代码,

    public static void Register(HttpConfiguration config)
            {
                // Web API 配置和服务
                var json = config.Formatters.JsonFormatter;
                // 解决json序列化时的循环引用问题
                json.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
                // 移除XML序列化器,剩下Json
                config.Formatters.Remove(config.Formatters.XmlFormatter);
    
                var jsonFormatter = config.Formatters.OfType<System.Net.Http.Formatting.JsonMediaTypeFormatter>().First();
                jsonFormatter.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver();
                // Web API 路由
                config.MapHttpAttributeRoutes();
    
                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{action}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );
            }

    与Oracle数据库连接采用System.Data.OracleClient,由于该DLL不支持.net framwork 4.5 ,所以我在该解决方案下,增加了一个项目解决方案,采用.net framwork 4.0,

    并在webapi主项目中引用该项目。代码http://download.csdn.net/download/gudaozi712m/10231426

    step 3 发布项目

    选择自定义,输入自定义名称

     选择文件系统

     目标位置即为项目发布后的文件位置,

     

     

     step 4 部署到IIS

     选择网站->添加网站,如下,输入相应的信息。

    下面这一步非常重要

    使用SOAPUI测试部署的程序,调用方法,弹出如下报错

    解决办法是:

     

    再重新启动网站,使用SOAPUI成功调用,

     附 调用时可能会报的错误及解决办法

    一、

    解决办法:

    二、这个错误出现的很偶然,折腾了一会,网上很多人都没说到点子上,这个是因为本机电脑装了oracle server端,而我又额外的装了客户端,导致出现ORA-12557错误,j

    解决办法是:检查环境变量path,将属于client的目录移除。

    三、

    解决办法:

  • 相关阅读:
    【zZ】OpenCV HOGDescriptor 参数图解
    [C]遍历目录下所有文件
    drawing
    转:基于用户投票的排名算法系列
    编码格式
    泛型
    接口
    隐藏方法不能实现多态性
    结构
    静态
  • 原文地址:https://www.cnblogs.com/gudaozi/p/8384734.html
Copyright © 2011-2022 走看看