搭建webapi相关配置
1.创建一个空的WebApi项目

2.安装help文档:
install-package Microsoft.AspNet.WebApi.HelpPage
3.注册help:
Global.asax==> AreaRegistration.RegisterAllAreas();
4.启用SetDocumentationProvider:
WebApplication/Areas/HelpPage/App_Start/HelpPageConfig.cs 目录下,找到下面代码,并取消注释(App_Data 改为 bin):

5. WebApplication Build 配置 XmlDocument 输出路径

6.如果需要配置swagger
1.Install-Package Swashbuckle
2.SwaggerConfig.cs修改配置
protected static string GetXmlCommentsPath()
{
return System.String.Format(@"{0}\bin\WebApiSwagger.XML", System.AppDomain.CurrentDomain.BaseDirectory);
}
3.c.IncludeXmlComments(GetXmlCommentsPath());注释打开
4.修改WebApplication Build 和步骤5一致。PS:如果用来HELP,需要将helpconfig里面的输出注释掉
7.Json格式输出:
Webapiconfig.cs里面config.Formatters.Remove(config.Formatters.XmlFormatter);
// 对 JSON 数据使用混合大小写。驼峰式,但是是javascript 首字母小写形式. config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); // 对 JSON 数据使用混合大小写。跟属性名同样的大小.输出 //config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new DefaultContractResolver();
或者Action方法自己添加返回格式:
public IHttpActionResult GetLeading(string s_xiangmubh) { this.Configuration.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new DefaultContractResolver(); try { var apply = new ApplyMeterDAL(); var res = apply.GetLeading(s_xiangmubh); return this.Ok(new { code = 0, message = string.Empty, data = res.Select(p => new LeadingFormInfo { CaliberId = p.CaliberId, MeterModelId = p.MeterModelId, ProducerId = p.ProduceId, RequestNumber = p.Count }) }); } catch (Exception e) { return this.Ok(new { code = -1, message = e.Message,data=new List<LeadingFormInfo>() }); } }
8.Json跨域:
1.install-package Microsoft.AspNet.WebApi.Cors
2.WebApiConfig里面添加代码:config.EnableCors(new EnableCorsAttribute("*", "*", "*")); //需引用System.Web.Http.Cors
9.配置log4net
1. install-package log4net
2.Web.config里面添加
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net>
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\log" />
<param name="AppendToFile" value="true" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyyMMdd".txt"" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
</layout>
</appender>
<logger name="Csm.Logger">
<level value="ALL" />
<appender-ref ref="RollingFile" />
</logger>
</log4net>
3.global.aspx里面注册
protected void Application_Start() { var logCfg = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "Configs/log4net.config"); log4net.Config.XmlConfigurator.ConfigureAndWatch(logCfg); GlobalConfiguration.Configure(WebApiConfig.Register); }
10.webapi输出时间类型数据格式
//配置返回的时间类型数据格式 GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.Converters.Add( new Newtonsoft.Json.Converters.IsoDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" } );
11.文件上传限制配置
maxRequestLength,maxAllowedContentLength允许文件上传大小多少的配置
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" maxRequestLength="2147483647" />
</system.web>
<system.webServer>
<security>
<requestFiltering >
<requestLimits maxAllowedContentLength="2147483647" ></requestLimits>
</requestFiltering>
</security>
</system.webServer>

浙公网安备 33010602011771号