实现目的:配置website端与服务端对接

1:配置好各项配置文件

2:server端编写接口客户端调用

1.1首先配置文件有log4的配置文件,有config的配置文件,还有服务列表的配置文件

首先在项目下建立Configs文件夹,里面包含log4和系统配置文件,名字可以随便取只要路径在程序中配置对就行  

log4的配置方式大家可以网上百度一篇,博客园应该会有相关的文章,这里讲一下SystemConfig配置文件的配置方法

这里配置了日志和数据库的设置都是1

各项目的Webconfig文件配好配置文件的路径

,在Framework里面对应好就是

其实这里还可以拓展,只不过拓展之后使用的话要做一个类似日志和数据库的封装过程。

1.2:在站点端配置服务文件,如图  ,

详细内容包含

ServerList.config文件是服务列表文件可以配置不同的服务对应不同的Url,serviceList.config里面包含一批Services节点,Server属性就对应不同的服务名称,Name是在本程序中使用的名字,Url是对应接口的路径,Method时表示的用Post或者Get方式请求的,Isrelative表示是     否是激活的。

2.1 接下来我们在Server端写一组接口供website端调用

新建一个Test控制器,继承APi控制器,,

编写两个接口WebHttp,WebHttp2,分别返回对象和对象集合。注意方法名要用Post或者Get属性标注,

website 写两个方法调用 

运行 使用python写个调用测试下接口.

断点调试结果website端 

server端调用过程

python调试接口

同样把接口换成WebRequestTest2 返回的就是一个list数组

这里我向接口传的参数都是null,如果有需要参数的只要在对应接口上加上形参,在调用上加上实参,参数对象是一样的就行了会自动依赖注入到接口的对象上直接可以使用

注意 本篇讲的是演示了站点端调用服务端,真正前后端分离的话直接使用Server端使用webapi对外开放接口就行了,前端纯Html+css+脚本,asp.net WebApi有一个Help页面只要写好注释就会自动生成接口说明列表

服务端可以使单独抽出来的核心业务模块,这样接近与服务化。

其实接口测试有许多很好的工具,比如火狐的httprequest和Chroom的Postman这两个插件都很好用,只不过赶上火狐最近更新一批插件到时我以前装的不兼容了,重装了好几次火狐一更新就不能用,postman由于要FQ安装所以也懒得搞了,

直接python三行代码写一个方便多了,python简单强大,建议大家多用用。

还有调试的时候,本例,讲的是直接运行本地进行接口调用,如果真是项目组协同开发的话,建议还是将代码发布到iis上面去然后使用附加到进程的方式调用,这样与真实的服务器环境差距不大,而且方便其他人调用,,

值得注意的是使用附加到进程的方式调试,iis和visual studio 都需要使用管理员的身份打开,如果不清楚也可以百度一下。

还有一点 关于上面的LogFilter是使用Filter拦截器来记录程序的运行情况的

在项目根目录下建立Log文件夹就会自动记录日志  例如早上请求的两次接口 就有记录 

就到这里吧,博主讲的不是很详细,有些东西应为我发现博客园上已经有很多大佬写的很详细了所以查找一下也能查到,所以博主没有写的很详细.更多的是想把思路分享出来。

最后附上完整Demo地址,希望大家学习愉快,也欢迎大家提出更好的意见,后续会更新一些后端第三方技术,比如Orm框架EF,Dapper依赖注入框架Autofac,对象转换工具类AutoMapper等,博主也在学习中希望共同进步。

亲手搭建一个基于Asp.Net WebApi的项目基础框架4的更多相关文章

  1. 亲手搭建一个基于Asp.Net WebApi的项目基础框架1

    目标:教大家搭建一个简易的前后端分离的项目框架. 目录: 1:关于项目架构的概念 2:前后端分离的开发模式 3:搭建框架的各个部分 这段时间比较闲,所以想把之前项目里用到的一些技术写到博客里来,分享给 ...

  2. 亲手搭建一个基于Asp.Net WebApi的项目基础框架3

    1:使用Framework工具类封装http请求 接上第二篇的步骤,现在在站点中使用封装好的组件,将framework编译好之后把dll提取出来,然后放到lib当中 在website中引用dll 接下 ...

  3. 亲手搭建一个基于Asp.Net WebApi的项目基础框架2

    本篇目的:封装一些抽象类 1::封装日志相关类 2:封装一个Service操作类 3:封装缓存操作类 4:封装其他一些常用Helper 1.1在Framework项目里面建立好相关操作类文件夹,以便于 ...

  4. 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(1)

    最近使用vscode比较多. 学习了一下如何在mac上使用vscode开发asp.netcore项目. 这里是我写的关于vscode的一篇文章: https://www.cnblogs.com/cgz ...

  5. 使用EF Code First搭建一个简易ASP.NET MVC网站,允许数据库迁移

    本篇使用EF Code First搭建一个简易ASP.NET MVC 4网站,并允许数据库迁移. 创建一个ASP.NET MVC 4 网站. 在Models文件夹内创建Person类. public ...

  6. Uber如何搭建一个基于Kafka的跨数据中心复制平台 原创: 徐宏亮 AI前线 今天

    Uber如何搭建一个基于Kafka的跨数据中心复制平台 原创: 徐宏亮 AI前线 今天

  7. 快速搭建一个基于react的项目

    最近在学习react,快速搭建一个基于react的项目 1.创建一个放项目文件夹,用编辑器打开 2.打开集成终端输入命令: npm install -g create-react-app 3. cre ...

  8. 使用gulp搭建一个传统的多页面前端项目的开发环境

    1.简介 使用gulp搭建一个传统的多页面前端项目的开发环境 支持pug scss es6编译支持 支持开发环境和打包生成sourceMap 支持文件变动自动刷新浏览器,css是热更新(css改动无需 ...

  9. 基于RxJava2+Retrofit2精心打造的Android基础框架

    代码地址如下:http://www.demodashi.com/demo/12132.html XSnow 基于RxJava2+Retrofit2精心打造的Android基础框架,包含网络.上传.下载 ...

随机推荐

  1. 用C#自定义一个简单的集合

    闲来无聊来自己做了一个简单的'集合',用来加深自己对集合的理解 class listNode { private object value; public listNode(object _value ...

  2. [控件] LiveChangedImageView

    LiveChangedImageView 效果 说明 切换图片的时候自动根据图片的尺寸进行渐变式切换,效果很不错,使用非常容易. 源码 https://github.com/YouXianMing/U ...

  3. python面试十题

    问题1: 请问如何修改以下python代码,使得下面的代码调用类A的show方法? class A(): def show(self): print("base show") cl ...

  4. 铁乐学Python_day05-字典dict

    1.[字典dict] Python内置了字典:dict的支持,dict全称dictionary, 在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度. 字典和列表直观上 ...

  5. redis 配置文件redis.conf

    daemonize yes #---默认值no,该参数用于定制redis服务是否以守护模式运行.--- pidfile /var/run/redis.pid #默认值/var/run/redis.pi ...

  6. eclipse导入maven工程missing artifact(实际是存在的)错误解决

    找到出错的jar包文件位置,删掉_maven.repositories文件(或用文本编辑器打开,将“>main=”改为“>=”,即删除main,当然main也可能是其他值),然后updat ...

  7. 标绘ol3版开源啦

    地址:git.oschina.net/ilocation/plot By 平凡的世界 plot4ol3 说明 基于OpenLayers3实现动态标绘API. 在线体验 :7xr2vb.com1.z0. ...

  8. 20165318 2017-2018-2 《Java程序设计》第一周学习总结

    20165318 2017-2018-2 <Java程序设计>第一周学习总结 教材内容学习总结 第一章主要对Java平台进行了简单的介绍,并讲解了如何搭建Java环境. Java平台概论 ...

  9. yii 执行流程

    应用执行流程: 浏览器向服务器发送 Http Request | 控制器(protected/controllers) | |---> Action | 创建模型 (Model) | 检查$_P ...

  10. ES6新特性6:模块Module

    本文摘自ECMAScript6入门,转载请注明出处. 一.Module简介 ES6的Class只是面向对象编程的语法糖,升级了ES5的构造函数的原型链继承的写法,并没有解决模块化问题.Module功能 ...