简单记下 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的目录移除。

三、

解决办法:

原文地址:https://www.cnblogs.com/gudaozi/p/8384734.html