打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
搭建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修改配置

  

?
1
2
3
4
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>

 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>

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml)
C# web api返回类型设置为json的三种方法
mvc、webapi杂记
【架构篇】ASP.NET Core 基于 Consul 动态配置热更新
Asp.Net WebApi一个简单的Token验证
C# WebApi使用AttributeRoutes特性路由
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服