.net中型系统 第三章 实战项目开发接口篇之一

.net中型系统 第三章 实战项目开发接口篇之一

前言

本篇为接口篇,是实战项目的中心篇章,因为其起到了承上启下的作用,上可处理业务逻辑,增删改查等数据操作,下可为各终端(android,ios,pc,小程序等)提供数据能力,其重要性不言而喻。
其构成有:业务接口,日志记录,访问配置,缓存等等,正文会为大家一一从头解析,也会由此铺叙开,其中会涉及到图片系统,访问第三方系统等,这些大家可以先标记,在本篇章会略过,但后面的篇章均会一一讲解。
好了,让我们开始实战吧!!!

API项目

新建ASP.NET Web项目,所有接口均以.ashx文件作为外部终端访问接口文件,再配合.config配置文件,配置访问第三方系统,再辅以log4net构建日志系统,形成完善的可拓展接口系统

Web.config

配置相关数据库连接,易拓展数据,日志记录文件地址等

1、数据库连接:

<connectionStrings>
    <add name="Data_ConnectionString" connectionString="metadata=res://*/DAL.DALData.DataModel.csdl|res://*/DAL.DALData.DataModel.ssdl|res://*/DAL.DALData.DataModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;initial catalog=Micro.Fields.LocalMutualService;persist security info=True;user id=sa;password=123456;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>

2、易拓展数据:配置在

<appSettings> </appSettings>

3、日志记录地址

<configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
    </configSections>

<log4net>
   
    <logger name="LogInfo">
      <level value="INFO" />
      <appender-ref ref="InfoAppender" />
    </logger>

   
    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
      <!--使用Unicode编码-->
      <Encoding value="UTF-8" />
      <param name="File" value="App_LogFile\\" />
      <param name="AppendToFile" value="true" />
      <!--记录日志写入文件时,不锁定文本文件,防止多线程时不能写Log,官方说线程非安全-->
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
      <param name="MaxSizeRollBackups" value="-1" />
      <!--是否只写到一个文件中-->
      <param name="StaticLogFileName" value="false" />
      <!--固定后缀-->
      <PreserveLogFileNameExtension value="true" />
      <!-- 每个文件的大小限制  -->
      <param name="MaximumFileSize" value="10MB" />
      <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
      <param name="RollingStyle" value="Composite" />
      <param name="DatePattern" value="yyyyMM\\APP接口\\信息\\yyyyMMdd&quot;.htm&quot;" />
      <!--过滤设置,LevelRangeFilter为使用的过滤器。 -->
      <!--<filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="DEBUG" />
        <param name="LevelMax" value="WARN" />
      </filter>-->
      <layout type="log4net.Layout.PatternLayout">
        <param name="Header" value="[Header]&lt;br/&gt;" />
        <param name="Footer" value="&lt;br/ &gt;[Footer]&lt;br/&gt;" />
        <param name="ConversionPattern" value="&lt;HR COLOR=red&gt;%n日志时间:%d [%t] &lt;BR /&gt;%n日志级别:%-5p &lt;BR /&gt;%n日 志 类:%c [%x] &lt;BR /&gt;%n%m &lt;BR /&gt;%n " />
      </layout>
    </appender>

    
  </log4net>

其余的配置可以根据业务系统自身需要,增加对应的配置

log4net

1、引用log4net.dll
2、AssemblyInfo.cs配置:[assembly: log4net.Config.XmlConfigurator()]
3、Global.asax配置

 public static log4net.ILog log;
        protected void Application_Start(object sender, EventArgs e)
        {
            log4net.Config.XmlConfigurator.Configure();
            log = log4net.LogManager.GetLogger(LogType.LogError.ToString());
        }

配置

1、配置图片系统,新建FileConfig.config

<?xml version="1.0" encoding="utf-8" ?>
<Config>
  <Url>http://img.local.com</Url>
  <Application>Local</Application>
  <Key>B68A5EE8-79E7-4DCE-BA30-E979B5FE94C4</Key>
</Config>

2、配置文件格式,新建:UploadConfig.config文件

<?xml version="1.0" encoding="utf-8"?>
<Config>
  <Item Key="CDC04546-7885-4C73-89B5-E2756335DF13" Name="Image" ImageFieldName="file" HostUrl="http://img.lms89.com" ImageMaxSize="20971520" ImageAllowFiles=".png,.jpg,.jpeg,.gif,.bmp" ImagePathFormat="image/{appid}/{usertype}/{userid}/default/{guid}"  />
  <Item Key="CDC04546-7885-4C73-89B5-E2756335DF13" Name="Audio" ImageFieldName="file" HostUrl="http://img.lms89.com" ImageMaxSize="20971520" ImageAllowFiles=".amr" ImagePathFormat="image/{appid}/{usertype}/{userid}/default/{guid}"  />
  <Item Key="CDC04546-7885-4C73-89B5-E2756335DF13" Name="Excel" ImageFieldName="file" HostUrl="http://img.lms89.com" ImageMaxSize="20971520" ImageAllowFiles=".xls,.xlsx" ImagePathFormat="image/{appid}/{usertype}/{userid}/default/{guid}"  />
  <Item Key="CDC04546-7885-4C73-89B5-E2756335DF13" Name="Pdf" ImageFieldName="file" HostUrl="http://img.lms89.com" ImageMaxSize="20971520" ImageAllowFiles=".pdf" ImagePathFormat="image/{appid}/{usertype}/{userid}/default/{guid}"  />
</Config>

其余需要用到配置的,均可以在相同目录下配置,最大的好处就是修改方便,而且比较统一

后续

下一篇会讲到接口的统一入口,鉴权等,以实现系统的统一性,便捷性,安全性等。
敬请期待。

上一篇:log4net将数据写入SQL sever


下一篇:Topshelf 创建 Windows 服务