webapi

快速部署业务类为webapi服务

匿名 (未验证) 提交于 2019-12-02 23:49:02
接着前一篇博文,将接口快速打包固定请求格式,不需要修改代码,可以自动完成接口调用,实际上就是生成了一个接口的代理类。 那么仅仅是接口请求代理,没有服务端怎么行?所以需要将实现接口的类部署为webapi的控制器。 这个时候ABP就登场了,原理需要查看官方文档。ABP就是实现了快速生成部署。 我就不说ABP的东西了,官方文档可以任意查阅。 因为ABP作为一种开源组件,集成的东西太多太全,作为小企业中的我们,复杂,不容易上手,所以打算跳过这个东西。 我需要的是把实现了业务接口的类部署成webapi即可,没有其它功用。 后面找到一个已经研究过的项目Dynamic Web AP。项目地址: https://github.com/dotnetauth/Panda.DynamicWebApi.git 作者博文地址: https://www.cnblogs.com/stulzq/p/11007770.html 。 最近花时间看了看,其实就是asp中的AOP接口使用,只是我买平时开放用WebApi,没有采用。 研究了作者的东西,我感觉小项目是可以用的,原作者叫动态webapi,其实简单说就是webRPC. 我用netcore3用了下,有个别地方有差异。基本原理是合适的。 主要有2点: 1.根据自己的约定,设置某个类是控制器 2.根据判断的控制器类,按照aspnet core约束,修改其中的内容

webapi------宿主程序

匿名 (未验证) 提交于 2019-12-02 23:48:02
业务场景: 公司的容器程序需要给前端暴露接口但是代码里面又不想写webapi项目工程就用到了宿主可以达到webapi的效果 1、 owin实现 2、其他实现 1、新建一个控制台程序 2、新建一个Controller文件并继承ApiController using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web.Http; namespace ConsoleApplication1 { public class BlahController : ApiController { [HttpGet] public string Date() { return DateTime.Today.ToString("yyyy/MM/dd"); } } } 3、实现调用 3.1实现调用一 using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Web.Http; using System.Web.Http.SelfHost;

asp.net WebApi WebApiConfig.cs Web API 配置和服务

匿名 (未验证) 提交于 2019-12-02 23:47:01
public static void Register(HttpConfiguration config) { ............................... var jsonSettings = config.Formatters.JsonFormatter.SerializerSettings; //获取或设置在序列化和反序列化期间如何处理空值。 jsonSettings.NullValueHandling = NullValueHandling.Ignore;//在序列化和反序列化对象时忽略空值。 // 移除XML序列化器 config.Formatters.Remove(config.Formatters.XmlFormatter); config.Formatters.JsonFormatter.Indent = true; // 解决json序列化时的循环引用问题 config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore; // 对 JSON 数据使用混合大小写。驼峰式,但是是javascript 首字母小写形式. config.Formatters

MVC4 WebAPI(һ)

匿名 (未验证) 提交于 2019-12-02 23:42:01
为什么80%的码农都做不了架构师?>>> 不管是因为什么原因,结果是在新出的MVC中,增加了WebAPI,用于提供REST风格的WebService,个人比较喜欢REST风格的WebService,感觉比SOAP要轻量级一些,而且对客户端的要求也更少,更符合网络数据传输的一般模式,客户端完全摆脱了代理和管道来直接和WebService进行交互,具体的区别可以参见 Web 服务编程,REST 与 SOAP (一)环境准备 本机的环境是XP+VS2010,需要安装VS2010 SP1升级包,MVC4升级包,Vs2010安装SP1后会影响SQLServer2008的自动提示功能,需要在安装补丁或插件,安装成功后可以新建如下的 MVC WebAPI 项目 (二)概览 新生成的WebAPI项目和典型的MVC项目一样,包含主要的Models,Views,Controllers等文件夹和Global.asax文件 Views对于WebAPI来说没有太大的用途,Models中的Model主要用于保存Service和Client交互的对象,这些对象默认情况下会被转换为Json格式的数据进行传输,Controllers中的Controller对应于WebService来说是一个Resource,用于提供服务。和普通的MVC一样,Global.asax用于配置路由规则 (三)Models

WebApi的创建和简单实现(一)

匿名 (未验证) 提交于 2019-12-02 23:37:01
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39353597/article/details/90751822 WebApi 1.what? 答: 对接各种客户端(浏览器,移动设备),构建http服务的框架 2.where? 答:部署在IIS中给外部应用提供数据 3.why? 答:C#MVC完美支持实现简单,明了,可控制 一、创建WebApi 1、开发环境:vs2019. 2、然后点击下一步 3、点击创建 4、然后再点击创建就会进入新建项目,然后再MVC(Models,Views,Controllers)中的M中创建一个类 5、然后在Controllers中创建一个继承ApiController类的空Api控制器 6、ContactController类的具体代码 public class ContactController : ApiController { Contact[] contacts = new Contact[] { new Contact(){ ID=1,Age=20,Birthday=Convert.ToDateTime("1988-07-25"),Name="嗷叫",Sex="男"}, new Contact(){ ID=2,Age=18,Birthday=Convert.ToDateTime(

C#上传文件到WebAPI

浪尽此生 提交于 2019-12-02 22:38:31
1 上传文件 <input type="file" id="file" /> 2 <input type="button" id="upload" value="上传文件" /> 3 4 <script> 5 //上传 6 $("#upload").click(function () { 7 var formData = new FormData(); 8 var file = document.getElementById("file").files[0]; 9 formData.append("fileInfo", file); 10 $.ajax({ 11 url: "../api/File/UploadFile", 12 type: "POST", 13 data: formData, 14 contentType: false,//必须false才会自动加上正确的Content-Type 15 processData: false,//必须false才会避开jQuery对 formdata 的默认处理,XMLHttpRequest会对 formdata 进行正确的处理 16 success: function (data) { 17 alert(data); 18 }, 19 error: function (data) { 20 alert("上传失败!"); 21 }

php+高德地图webapi 高德jsapi 实现 当前位置与目标位置距离 并按照距离排序(坐标逆转换)

匿名 (未验证) 提交于 2019-12-02 22:11:45
<script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak='自己申请'&s=1"></script> <script type="text/javascript" charset="utf-8"> var geolocation = new BMap.Geolocation(); geolocation.getCurrentPosition(function (r) { if (this.getStatus() == BMAP_STATUS_SUCCESS) { var lat = r.point.lat; var lng = r.point.lng; } // return; var data = {'lat': lat, 'merchid': "{$item['id']}",'classid': "{$classitem['id']}", 'lng': lng}; $.ajax({ url: "{php echo mobileUrl('shop/category/ajaxcodot')}", data: data, cache: false }).done(function (result) { var data = jQuery.parseJSON(result); if (data

webAPI文件上传时文件过大404错误的问题

匿名 (未验证) 提交于 2019-12-02 22:10:10
背景:最近公司有个需求,外网希望自动保存数据到内网,内网有2台服务器可以相互访问,其中一台服务器外网可以访问,于是想在 这台服务器上放个中转的接口。后来做出来以后测试发现没有问题就放线上去了,不顾发现工程助理 在使用是时候没有自动上传 ,于是猜想可能是文件过大被限制了。 使用 Fiddle 测试后发现确实如果大文件上传就会报404错误 修改方法如下 在 web.config 文件下找到 system.webSever 节点下面增加,maxAllowedContentLenth 文件上传的长度 果然发现接口能够访问了,但是却获取不到文件 上传小文件获取的到对象 ,上传大文件还是获取不到对象,楼主这里用的webAp猜想可能与web上传文件限制也有关系 于是修改一下web.config 再次上传大文件发现可以获取到对象了 踩坑结束~~~ 文章来源: webAPI文件上传时文件过大404错误的问题

输出的数据格式是如何决定的-------Asp.net WebAPI学习笔记(二)

匿名 (未验证) 提交于 2019-12-02 22:10:10
 在上一篇文章《 路由其实也可以很简单 》,我们解决了路由问题,这篇文章,我们来研究剩下的另一个问题,为何我们的方法返回的是一个列表,输出到客户端的时候,变成json呢,大家应该还记得我们上一篇文章ProductsController的代码: using ProductsApp.Models; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Web.Http; namespace ProductsApp.Controllers { public class ProductsController : ApiController { Product[] products = new Product[] { new Product { Id = 1, Name = "Tomato Soup", Category = "Groceries", Price = 1 }, new Product { Id = 2, Name = "Yo-yo", Category = "Toys", Price = 3.75M }, new Product { Id = 3, Name = "Hammer", Category = "Hardware",

ASP.NET CORE系列【五】webapi整理以及RESTful风格化

匿名 (未验证) 提交于 2019-12-02 22:10:10
介绍 使用 以前使用过mvc的人对webapi 应该都很熟悉,先看一段熟悉的代码 大伙发现了什么没?跟以往mvc大多数相同,但有些地方不同 ,我们来一起看看有何区别 1.首先SysUsersController上面有一段代码 [Produces("application/json")] //[Route("api/SysUsers")] [Route("api/[controller]/[action]")] public class SysUsersController : Controller { } 这种情况我们只需要正常的ajax请求就能访问到了, $.ajax({ url:'/api/SysUsers/Login', type: 'POST', contentType: "application/json; charset=utf-8", data: {UserName:'shumin',Password:'123456'}, success: function (data) { if (data.success) { var href = '@Url.Action("Index")?' + new Date().getTime(); window.location.href = href; } else { alert(data.message); } }, error