webapi

abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之九(三十五)

允我心安 提交于 2020-02-04 21:50:32
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+easyui+efcore实现仓储管理系统——解决方案介绍(二) abp(net core)+easyui+efcore实现仓储管理系统——领域层创建实体(三) abp(net core)+easyui+efcore实现仓储管理系统——定义仓储并实现 (四) abp(net core)+easyui+efcore实现仓储管理系统——创建应用服务(五) abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之控制器(六) abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之列表视图(七) abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之增删改视图(八) abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之菜单与测试(九) abp(net core)+easyui+efcore实现仓储管理系统——多语言(十) abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十一)

WebAPI规范设计——违RESTful

廉价感情. 提交于 2020-02-04 16:01:22
本文首先简单介绍了几种API设计风格(RPC、REST、GraphQL),然后根据实现项目经验提出WebAPI规范设计思路,一些地方明显违反了RESTful风格,供大家参考! 一、几种设计风格介绍 1.1 RPC 这是最常见的方式,RPC说的是本地调用远程的方法,面向的是过程,估计超过50%的API是这种分格的。 RPC形式的API组织形态是类和方法,或者说领域和行为。 因此API的命名往往是一个动词,比如 GetUserInfo,CreateUser 。 因为URI会非常多而且往往没有一些约定规范,所以需要有详细的文档。 也是因为无拘无束,HTTP方法基本只用GET和POST,设计起来比较简单。 1.2 REST REST架构风格有四个级别的成熟度: 级别 0:定义一个 URI,所有操作是对此 URI 发出的 POST 请求。 级别 1:为各个资源单独创建 URI。 级别 2:使用 HTTP 方法来定义对资源执行的操作。 级别 3:使用超媒体(HATEOAS)。 级别0其实就是类RPC的风格,级别3是真正的REST,大多数号称REST的API在级别2。REST实现一些要点包括: REST形式的API组织形态是资源和实体,一切围绕资源(级别1的要点)。 会定义一些标准方法(级别2的要点),然后把标准方法映射到实现(比如HTTP Method): GET:获取资源详情或资源列表

ASP.NET MVC / WebAPI 路由机制详解

我是研究僧i 提交于 2020-02-04 11:36:41
从MVC到WebApi,路由机制一直都在其中扮演着重要的角色。 它可以很 简单 :如果你只需要会用一些简单的路由,如/Home/Index那么你只需要配置一个默认路由就能搞定。 它可以很 神秘 :你的url可以千变万化,看到一些“无厘头”的url,很难理解它是如何找到匹配的Action,例如/api/Pleasure/1/detail,这样的url可以让你纠结半天。 它可以很 深奥 :当面试官提问“请简单分析下MVC路由机制的原理”,你可能事先就准备好了答案,然后劈里啪啦一顿(型如:UrlRoutingMoudle—>Routes—>RouteData—>RequestContext—>Controller),你可能回答的很流利,但并不一定理解这些个对象到底是啥意思。):目前为止我还没能理解透,以后会继续努力的直到弄清楚。 一、MVC和WebApi路由机制比较 1、MVC使用的路由 在MVC中,默认路由机制是通过解析url路径来匹配Action。比如:/User/GetList,这个url就表示匹配User控制器下的GetList方法,这是MVC路由的默认解析方式。为什么默认的解析方式是这样子的呢?因为MVC定义了一个默认路由,路由代码放在App_Start文件夹下的RouteConfig.cs中,今后我们如果想要自定义路由规则,那自定义路由的代码也要写在RouteConfig

MVC初体验-WebApi调用②(13)

半腔热情 提交于 2020-02-04 01:53:12
两种调用方式: 后台 代码: namespace Day3_T3_WebApi.Controllers { public class BookInfoController : ApiController { // GET: api/BookInfo //使用method=Get方式 去请求URL为api/BookInfo地址,则这个方法会被执行 //一般这个用来查询所有信息 public IEnumerable<BookInfo> Get() { //这里的数据也可以从数据库中查询 List<BookInfo> data = new List<BookInfo>(); data.Add(new BookInfo { Id = 0, Name = "天龙八部" }); data.Add(new BookInfo { Id = 1, Name = "射雕英雄传" }); data.Add(new BookInfo { Id = 2, Name = "倚天屠龙记" }); data.Add(new BookInfo { Id = 3, Name = "神雕侠侣" }); return data; } //用来查询单条信息 // GET: api/BookInfo/5 public string Get(int id) { return "value"; } // POST: api

asp.net webapi 跨域问题解决 No 'Access-Control-Allow-Origin' header i

老子叫甜甜 提交于 2020-02-03 01:10:12
一、基础解决方案(基础配置) 通过Ajax调用web api路径时报错: No 'Access-Control-Allow-Origin' header is present on the requested resource. C#自带的web api并不能支持跨域访问,如果需要,可以更改配置来实现。 1、更改Web.config文件,加上如下代码 <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="*"/> <add name="Access-Control-Allow-Headers" value="Content-Type,Token" /> <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" /> </customHeaders> </httpProtocol> 2、然后需要配置Global.asax文件 插入如下代码: /// <summary> /// 配置Ajax跨域访问 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void

ASP.NET Core WebAPI学习-2

本秂侑毒 提交于 2020-02-02 01:48:17
目录: ASP.NET Core WebAPI学习-1 ASP.NET Core WebAPI学习-2 ASP.NET Core WebAPI学习-3 ASP.NET Core WebAPI学习-4 ASP.NET Core WebAPI学习-5 ASP.NET Core WebAPI学习-6 使用Controller ApiController特性的作用: ApiController是应用在Controller类,会启用以下行为: 要求使用特性路由(Attribute Routing) 自动HTTP 400响应 推断参数的绑定源 Mulitpart/form-data请求推断 错误状态代码的问题详细信息 CompanyController 继承自ControllerBase 使用[ApiController]特性 配置路由 [Route(template: "api/companies")] [ApiController] public class CompaniesController : ControllerBase { private readonly ICompanyRepository companyRepository; private readonly IMapper mapper; //配置依赖注入 public CompaniesController

ASP.NET Core WebAPI学习-3

ε祈祈猫儿з 提交于 2020-02-01 17:37:51
ASP.NET Core WebAPI学习-1 ASP.NET Core WebAPI学习-2 ASP.NET Core WebAPI学习-3 ASP.NET Core WebAPI学习-4 ASP.NET Core WebAPI学习-5 ASP.NET Core WebAPI学习-6 内容协商(Content Negotiation) AutoMapper的使用 内容协商是这样一个过程:针对一个响应,当有多种表述格式可用的时候,选取最佳的一个表述。数据格式是json,xml等格式 Media Type(媒体类型): - applicaion/json - application/xml 输出格式在Startup.cs中定义,当请求的格式与输出的格式不匹配的时候,会返回406 Not Acceptable状态码 在ASP.NET Core中Startup的ConfigureServices方法中定义: services.AddControllers(configure: setup => { setup.ReturnHttpNotAcceptable = true; //默认格式为json,也支持json setup.OutputFormatters.Add(new XmlDataContractSerializerOutputFormatter()); /

ASP.NET Core WebAPI基于IdentityServer4实现Token令牌身份认证

一个人想着一个人 提交于 2020-01-31 14:20:40
一、课程介绍 开发提供数据的WebApi服务,最重要的是数据的安全性。那么对于我们来说如何确保提供的API服务的数据安全将会是需要思考的问题。在ASP.NET WebApi中我们应该如何保证我们的接口安全呢? 本次分享课程阿笨给大家分享的在ASP.NET Core中使用的是目前最流行、功能最强大的身份授权以及访问控制的解决方案——IdentityServer4(认证和授权),它是一套专注于帮助使用.Net 技术的公司为现代应用程序建立标识和访问控制解决方案,包括单点登录、身份管理、授权和API安全。 1.1、本次分享课程适合人群如下 1)、有一定的.NET Core开发基础。 2)、学习和了解.Net Core跨平台开发技术。 3)、喜欢阿笨分享的干货课程童鞋们。本课程不是零基础教学,大家务必根据自身的实际情况进行选择学习。如果您在学习过程中遇到任何的课程问题,请先私下直接找阿笨老师进行在线的沟通和交流。谢谢大家的理解和支持,预祝大家学习快乐!如果您是一个开发老鸟,那么本次课程完全不建议您进行学习! 1.2、一句话总结今天我们学习到达的目标? 如何在ASP.NET Core WebAPI基于IdentityServer4来实现客户端与服务端接口Token令牌身份认证。 如果您同样对本次分享《ASP.NET Core

【转】ASP.NET Core MVC/WebAPi 模型绑定探索

穿精又带淫゛_ 提交于 2020-01-29 12:55:32
前言 相信一直关注我的园友都知道,我写的博文都没有特别枯燥理论性的东西,主要是当每开启一门新的技术之旅时,刚开始就直接去看底层实现原理,第一会感觉索然无味,第二也不明白到底为何要这样做,所以只有当你用到了,你再去看理论性的文章时才会豁然开朗,这是我一直以来学习技术的方法。本文我们来讲解.NET Core中的模型绑定。 话题 在ASP.NET Core之前MVC和Web APi被分开,也就说其请求管道是独立的,而在ASP.NET Core中,WebAPi和MVC的请求管道被合并在一起,当我们建立控制器时此时只有一个Controller的基类而不再是Controller和APiController。所以才有本节的话题在模型绑定上呈现出有何不同呢?下面我们一起来看看。 ASP.NET MVC模型绑定 我们首先还是老规矩给出测试类 public class Person { public string Name { get; set; } public string Address { get; set; } public int Age { get; set; } } 接着POST请求通过Action方法进行模型绑定。 [HttpPost] public JsonResult PostPerson(Person p) { return Json(p); } 到这里,后台就大概over了

WebApi 跨域解决方案 --CORS

好久不见. 提交于 2020-01-27 22:18:52
跨站HTTP请求(Cross-site HTTP request)是指发起请求的资源所在域不同于请求指向的资源所在域的HTTP请求。 比如说,我在Web网站A(www.a.com)中通过<img>标签引入了B站的资源(www.b.com/images/1.jpg),那么A站会向B站发起一个跨站请求。 这种图片资源的跨站请求是被允许的,类似的跨站请求还有CSS文件,JavaScript文件等。 但是如果是在脚本中发起HTTP请求,出于安全考虑,会被浏览器限制。比如,使用 XMLHttpRequest 对象发起 HTTP 请求就必须遵守 同源策略 。 所谓“同源策略”是指Web应用程序只能使用 XMLHttpRequest 对象向发起源所在域内发起HTTP请求,这个请求源和请求对象必须在一个域内。 举例来说,http://www.a.com,这个网址的协议是http,域名是www.a.com,端口默认是80。那么以下是它的同源情况: http://www.a.com/index.html 同源 https://www.a.com/a.html 不同源(协议不同) http://service.a.com/testService/test 不同源(域名不同) http://www.b.com/index.html 不同源(域名不同) http://www.a.com:8080/index